allow the Carp routines to pass through exception objects
Gurusamy Sarathy [Mon, 15 Feb 1999 03:39:53 +0000 (03:39 +0000)]
p4raw-id: //depot/perl@2928

lib/Carp.pm

index c654565..f8f750a 100644 (file)
@@ -43,6 +43,12 @@ This feature is enabled by 'importing' the non-existent 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;