summaryrefslogtreecommitdiffstats
path: root/contrib/perl5/lib/Carp.pm
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/perl5/lib/Carp.pm')
-rw-r--r--contrib/perl5/lib/Carp.pm10
1 files changed, 9 insertions, 1 deletions
diff --git a/contrib/perl5/lib/Carp.pm b/contrib/perl5/lib/Carp.pm
index 6bac364..f8f750a 100644
--- a/contrib/perl5/lib/Carp.pm
+++ b/contrib/perl5/lib/Carp.pm
@@ -35,7 +35,7 @@ and a carp as a cluck across I<all> modules. In other words, force a
detailed stack trace to be given. This can be very helpful when trying
to understand why, or from where, a warning or error is being generated.
-This feature is enabled by 'importing' the non-existant symbol
+This feature is enabled by 'importing' the non-existent symbol
'verbose'. You would typically enable it by saying
perl -MCarp=verbose script.pl
@@ -43,6 +43,12 @@ This feature is enabled by 'importing' the non-existant symbol
or by including the string C<MCarp=verbose> in the L<PERL5OPT>
environment variable.
+=head1 BUGS
+
+The Carp routines don't handle exception objects currently.
+If called with a first argument that is a reference, they simply
+call die() or warn(), as appropriate.
+
=cut
# This package is heavily used. Be small. Be fast. Be good.
@@ -88,6 +94,7 @@ sub export_fail {
# each function call on the stack.
sub longmess {
+ return @_ if ref $_[0];
my $error = join '', @_;
my $mess = "";
my $i = 1 + $CarpLevel;
@@ -190,6 +197,7 @@ sub longmess {
sub shortmess { # Short-circuit &longmess if called via multiple packages
goto &longmess if $Verbose;
+ return @_ if ref $_[0];
my $error = join '', @_;
my ($prevpack) = caller(1);
my $extra = $CarpLevel;
OpenPOWER on IntegriCloud