Rechercher une page de manuel
Carp::Always.3pm
Langue: en
Version: 2007-07-30 (fedora - 01/12/10)
Section: 3 (Bibliothèques de fonctions)
NAME
Carp::Always - Warns and dies noisily with stack backtracesSYNOPSIS
use Carp::Always;
makes every "warn()" and "die()" complains loudly in the calling package and elsewhere. More often used on the command line:
perl -MCarp::Always script.pl
DESCRIPTION
This module is meant as a debugging aid. It can be used to make a script complain loudly with stack backtraces when warn()ing or die()ing.Here are how stack backtraces produced by this module looks:
# it works for explicit die's and warn's $ perl -MCarp::Always -e 'sub f { die "arghh" }; sub g { f }; g' arghh at -e line 1 main::f() called at -e line 1 main::g() called at -e line 1 # it works for interpreter-thrown failures $ perl -MCarp::Always -w -e 'sub f { $a = shift; @a = @$a };' \ -e 'sub g { f(undef) }; g' Use of uninitialized value in array dereference at -e line 1 main::f('undef') called at -e line 2 main::g() called at -e line 2
In the implementation, the "Carp" module does the heavy work, through "longmess()". The actual implementation sets the signal hooks $SIG{__WARN__} and $SIG{__DIE__} to emit the stack backtraces.
Oh, by the way, "carp" and "croak" when requiring/using the "Carp" module are also made verbose, behaving like "cloak" and "confess", respectively.
EXPORT
Nothing at all is exported.ACKNOWLEDGMENTS
This module was born as a reaction to a release of Acme::JavaTrace by Sebastien Aperghis-Tramoni. Sebastien also has a newer module called Devel::SimpleTrace with the same code and fewer flame comments on docs. The pruning of the uselessly long docs of this module were prodded by Michael Schwern.Schwern and others told me ``the module name stinked'' - it was called "Carp::Indeed". After thinking long and not getting nowhere, I went with nuffin's suggestion and now it is called "Carp::Always". "Carp::Indeed" which is now deprecate lives in its own distribution (which won't go anywhere but will stay there as a redirection to this module).
SEE ALSO
- *
- Carp
- *
- Acme::JavaTrace and Devel::SimpleTrace
Please report bugs via CPAN RT http://rt.cpan.org/NoAuth/Bugs.html?Dist=Carp-Always.
BUGS
Every (un)deserving module has its own pet bugs.- *
- This module does not play well with other modules which fusses around with "warn", "die", $SIG{'__WARN__'}, $SIG{'__DIE__'}.
- *
- Test scripts are good. I should write more of these.
- *
- I don't know if this module name is still a bug as it was at the time of "Carp::Indeed".
AUTHOR
Adriano Ferreira, <ferreira@cpan.org>COPYRIGHT AND LICENSE
Copyright (C) 2005-2007 by Adriano R. FerreiraThis library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre