X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCarp.pm;h=f2e042e05cfdda383b214afe9c19c946ddff08cf;hb=57451d77f86469523e0ddfb6d70d92f71e056fac;hp=43524ddbe54b3be0ffee749b92f2a42c730d8521;hpb=0bcd2fea6bc6ecdf03a0c2410ba83be70e2072dc;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/Carp.pm b/lib/Carp.pm index 43524dd..f2e042e 100644 --- a/lib/Carp.pm +++ b/lib/Carp.pm @@ -1,5 +1,7 @@ package Carp; +our $VERSION = '1.00'; + =head1 NAME carp - warn of errors (from perspective of caller) @@ -19,6 +21,9 @@ confess - die of errors with stack backtrace use Carp qw(cluck); cluck "This is how we got here!"; + print FH Carp::shortmess("This will have caller's details added"); + print FH Carp::longmess("This will have stack backtrace added"); + =head1 DESCRIPTION The Carp routines are useful in your own modules because @@ -28,6 +33,11 @@ routine Foo() that has a carp() in it, then the carp() will report the error as occurring where Foo() was called, not where carp() was called. +The routine shortmess() can be used to generate the string that +carp/croak would have produced. The routine longmess() can be +used to generate the backtrace that cluck/confess would have +produced. + =head2 Forcing a Stack Trace As a debugging aid, you can force Carp to treat a croak as a confess @@ -68,10 +78,12 @@ $MaxArgLen = 64; # How much of each argument to print. 0 = all. $MaxArgNums = 8; # How many arguments to print. 0 = all. $Verbose = 0; # If true then make shortmess call longmess instead +$CarpInternal{Carp}++; + require Exporter; @ISA = ('Exporter'); @EXPORT = qw(confess croak carp); -@EXPORT_OK = qw(cluck verbose); +@EXPORT_OK = qw(cluck verbose longmess shortmess); @EXPORT_FAIL = qw(verbose); # hook to enable verbose mode