summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-10-02 03:45:37 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-10-02 03:45:37 +0000
commit4eb79ab512b1332d593701ae7f01c47eac3323b4 (patch)
treea23c2de7fc23aaa46f1c2883368bd1ca84e80a5b
parent17feb5d536e7c1a1b75d6e8e85a12d67b3d41c04 (diff)
downloadperl-4eb79ab512b1332d593701ae7f01c47eac3323b4.tar.gz
make warning about glob process failure optional
p4raw-id: //depot/perl@1912
-rw-r--r--pod/perldiag.pod23
-rw-r--r--pp_hot.c8
2 files changed, 19 insertions, 12 deletions
diff --git a/pod/perldiag.pod b/pod/perldiag.pod
index 08c73c3284..8ccb16b94b 100644
--- a/pod/perldiag.pod
+++ b/pod/perldiag.pod
@@ -1417,16 +1417,19 @@ and execute the specified command.
(P) Something went badly wrong in the regular expression parser.
-=item internal error: glob failed
-
-(P) Something went wrong with the external program(s) used for C<glob>
-and C<E<lt>*.cE<gt>>. This may mean that your csh (C shell) is
-broken. If so, you should change all of the csh-related variables in
-config.sh: If you have tcsh, make the variables refer to it as if it
-were csh (e.g. C<full_csh='/usr/bin/tcsh'>); otherwise, make them all
-empty (except that C<d_csh> should be C<'undef'>) so that Perl will
-think csh is missing. In either case, after editing config.sh, run
-C<./Configure -S> and rebuild Perl.
+=item glob failed (%s)
+
+(W) Something went wrong with the external program(s) used for C<glob>
+and C<E<lt>*.cE<gt>>. Usually, this means that you supplied a C<glob>
+pattern that caused the external program to fail and exit with a nonzero
+status. If the message indicates that the abnormal exit resulted in a
+coredump, this may also mean that your csh (C shell) is broken. If so,
+you should change all of the csh-related variables in config.sh: If you
+have tcsh, make the variables refer to it as if it were csh (e.g.
+C<full_csh='/usr/bin/tcsh'>); otherwise, make them all empty (except that
+C<d_csh> should be C<'undef'>) so that Perl will think csh is missing.
+In either case, after editing config.sh, run C<./Configure -S> and
+rebuild Perl.
=item internal urp in regexp at /%s/
diff --git a/pp_hot.c b/pp_hot.c
index 4ca41bbab4..75bdb4fa98 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -1258,8 +1258,12 @@ do_readline(void)
IoFLAGS(io) |= IOf_START;
}
else if (type == OP_GLOB) {
- if (!do_close(PL_last_in_gv, FALSE))
- warn("internal error: glob failed");
+ if (!do_close(PL_last_in_gv, FALSE) && ckWARN(WARN_CLOSED)) {
+ warner(WARN_CLOSED,
+ "glob failed (child exited with status %d%s)",
+ STATUS_CURRENT >> 8,
+ (STATUS_CURRENT & 0xFF) ? ", core dumped" : "");
+ }
}
if (gimme == G_SCALAR) {
(void)SvOK_off(TARG);