diff options
author | Dave Mitchell <davem@fdisolutions.com> | 2006-05-29 14:12:13 +0000 |
---|---|---|
committer | Dave Mitchell <davem@fdisolutions.com> | 2006-05-29 14:12:13 +0000 |
commit | 090656d2188162bd37e6423633fb806b30c6408b (patch) | |
tree | b3d717009dac87ffff1b88a57bb93ba18f6b31c8 /lib/Carp.pm | |
parent | 35746476c6cfdad82a9e0a09a8c918eb454dff46 (diff) | |
download | perl-090656d2188162bd37e6423633fb806b30c6408b.tar.gz |
ensure failure to load Carp::Heavy gets reported
p4raw-id: //depot/perl@28330
Diffstat (limited to 'lib/Carp.pm')
-rw-r--r-- | lib/Carp.pm | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/Carp.pm b/lib/Carp.pm index c0ffb9c591..5545c3937d 100644 --- a/lib/Carp.pm +++ b/lib/Carp.pm @@ -28,8 +28,18 @@ sub export_fail { shift; $Verbose = shift if $_[0] eq 'verbose'; @_ } sub longmess { goto &longmess_jmp } sub shortmess { goto &shortmess_jmp } # these two are replaced when Carp::Heavy is loaded -sub longmess_jmp {{ local($@, $!); require Carp::Heavy} goto &longmess_jmp} -sub shortmess_jmp {{ local($@, $!); require Carp::Heavy} goto &shortmess_jmp} +sub longmess_jmp { + local($@, $!); + eval { require Carp::Heavy }; + return $@ if $@; + goto &longmess_jmp; +} +sub shortmess_jmp { + local($@, $!); + eval { require Carp::Heavy }; + return $@ if $@; + goto &shortmess_jmp; +} sub croak { die shortmess @_ } sub confess { die longmess @_ } |