Carp(3) Perl Programmers Reference Guide Carp(3) NNNNAAAAMMMMEEEE carp - warn of errors (from perspective of caller) cluck - warn of errors with stack backtrace (not exported by default) croak - die of errors (from perspective of caller) confess - die of errors with stack backtrace SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS use Carp; croak "We're outta here!"; use Carp qw(cluck); cluck "This is how we got here!"; DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN The Carp routines are useful in your own modules because they act like _d_i_e_(_) or _w_a_r_n_(_), but report where the error was in the code they were called from. Thus if you have a routine _F_o_o_(_) that has a _c_a_r_p_(_) in it, then the _c_a_r_p_(_) will report the error as occurring where _F_o_o_(_) was called, not where _c_a_r_p_(_) was called. FFFFoooorrrrcccciiiinnnngggg aaaa SSSSttttaaaacccckkkk TTTTrrrraaaacccceeee As a debugging aid, you can force Carp to treat a croak as a confess and a carp as a cluck across _a_l_l 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-existent symbol 'verbose'. You would typically enable it by saying perl -MCarp=verbose script.pl or by including the string MCarp=verbose in the the _P_E_R_L_5_O_P_T manpage environment variable. BBBBUUUUGGGGSSSS The Carp routines don't handle exception objects currently. If called with a first argument that is a reference, they simply call _d_i_e_(_) or _w_a_r_n_(_), as appropriate. 12/Jul/1999 perl 5.005, patch 03 1 Carp(3) Perl Programmers Reference Guide Carp(3) 12/Jul/1999 perl 5.005, patch 03 2