slackbuilds/perl/perl-Carp-Clan
B. Watson aecbeedba7 perl/perl-Carp-Clan: Wrap README at 72 columns.
Signed-off-by: B. Watson <yalhcru@gmail.com>
2022-03-14 03:55:00 -04:00
..
README perl/perl-Carp-Clan: Wrap README at 72 columns. 2022-03-14 03:55:00 -04:00
perl-Carp-Clan.SlackBuild All: Support $PRINT_PACKAGE_NAME env var 2021-07-17 21:55:09 +02:00
perl-Carp-Clan.info perl/perl-Carp-Clan: Updated for version 6.06. 2018-02-24 06:55:40 +07:00
slack-desc various: Fix slack-desc formatting and comment nit picks. 2013-11-22 02:29:22 -05:00

README

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:
https://metacpan.org/pod/distribution/Carp-Clan/lib/Carp/Clan.pod