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
use Carp; croak "We're outta here!";
use Carp qw(cluck); cluck "This is how we got here!";
The Carp routines are useful in your own modules because
they act like
As a debugging aid, you can force Carp to treat a croak as a confess and a carp as a cluck across all 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
The Carp routines don't handle exception objects currently.
If called with a first argument that is a reference, they simply