slackbuilds_ponce/perl/perl-Carp-Clan
Erik Hanson 4248415dde Add REQUIRED field to .info files.
Signed-off-by: Erik Hanson <erik@slackbuilds.org>
2012-08-19 21:57:51 -05:00
..
perl-Carp-Clan.info Add REQUIRED field to .info files. 2012-08-19 21:57:51 -05:00
perl-Carp-Clan.SlackBuild perl/*: Moved all of the Perl modules to here 2011-03-20 12:32:34 -05:00
README perl/*: Moved all of the Perl modules to here 2011-03-20 12:32:34 -05:00
slack-desc Entire Repo: Fix the "handy ruler" length in slack-desc files 2012-08-15 20:27:00 -05:00

Carp::Clan - Report errors from perspective of caller of a "clan" of modules.

This module is based on "Carp.pm" from Perl 5.005_03. It has been modified to
skip all package names matching the pattern given in the "use" statement
inside the "qw()" term (or argument list).
Suppose you have a family of modules or classes named "Pack::A", "Pack::B" and
so on, and each of them uses "Carp::Clan qw(^Pack::);" (or at least the one in
which the error or warning gets raised).
Thus when for example your script "tool.pl" calls module "Pack::A", and module
"Pack::A" calls module "Pack::B", an exception raised in module "Pack::B" will
appear to have originated in "tool.pl" where "Pack::A" was called, and not in
"Pack::A" where "Pack::B" was called, as the unmodified "Carp.pm" would try to
make you believe :-).
This works similarly if "Pack::B" calls "Pack::C" where the exception is
raised, etcetera.
In other words, this blames all errors in the "Pack::*" modules on the user of
these modules, i.e., on you. ;-)

For more informations, see:
http://search.cpan.org/dist/Carp-Clan/lib/Carp/Clan.pod