| Module Info
| Add a review of Carp-Indeed
This module works as advertized for what I needed it... Devel::SimpleTrace and Acme::JavaTrace don't list the arguments.
It could improve by:
making _die and _warn goto \&Carp::confess etc, so that this particular stack frame is not mentioned
remove @EXPORT_OK, and in fact all use of Exporter (it's not used and in fact could result in errors later 'die' and 'warn' don't exist).
but it does get the job done and is *not* the same as -MCarp=verbose.
A better name could be Carp::Always.
Carp::Indeed really does
use Carp qw(verbose)
which makes carp() and croak() print stack backtraces, but do not affect warn() and die(). That's what the module does: brings stack backtraces to warn()ings and "deaths".
The documentation needs to be shortened and made more objective. But my main thrust was when I read, in Acme::JavaTrace, saper saying printing stack traces like Java is "more professional" than the Perl style. I couldn't help it: ten lines of codes aided by the Carp module were enough.
This is meant to be used in the command line:
perl -MCarp::Indeed script.pl
but then one can use
perl -MCarp::verbose script.pl
for largely the same effect (the latter being part of the Core, however).
It redefines die and warn functions and forces their export but doesn't override the signal handlers, so many errors and warnings won't be caught by this. (The docs say it does muss around with the signal handlers, but it doesn't.) So it's only useful when a program calls die/warn/croak/carp.
The documentation has various rants about the meanings of words like "carp", "confess", "cluck", etc. (I suspect the author misunderstands the humor in that naming scheme) and some things about Acme::JavaTrace that make little sense.