use Carp qw/ cluck confess longmess /; # die of errors with stack backtrace confess("title: ($title)") # warn of errors with stack backtrace cluck("Before escaping title ($title)"); $title = $self->escape($title); cluck("After escaping title ($title)"); # longmess - return the message that cluck and confess produce $self->log_error( "title not set: " . longmess() );
Carp on search.cpan.org appears to identify perl itself and doesn't provide POD for some reason, but see: perldoc Carp.
Another useful module is Carp::Always, which makes all dies and warns emit stack traces.
Note that this will change exception strings, so any eval BLOCK that checks for specific exception matches against $@ may fail because of this.
Enable Carp::Always with a regular "use" statement in the code, or temporarily from the command line using one of these:
perl -MCarp::Always your_program.pl #or, depending on the shell/CMD export PERL5OPT=-MCarp::Always set PERL5OPT=-MCarp::Always
Or from within Emacs using the M-x setenv function. This is useful if you run Perl programs using the *compilation* mode.
/J
In reply to Re: RFC: Basic debugging checklist
by jplindstrom
in thread RFC: Basic debugging checklist
by toolic
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |