diff options
author | Ismael Luceno | 2018-01-30 06:00:38 -0300 |
---|---|---|
committer | Ismael Luceno | 2018-01-30 06:00:53 -0300 |
commit | ade45078be5bc6e7bf96f32e05ab2da4c9302452 (patch) | |
tree | c1e4a429fb55a6cde7013482e1bf6a24c037fe30 /perl-cpan | |
parent | fb89ff5935b5668601584ecbe2070692a7df3254 (diff) |
perl-carp-clan: new spell, Carp::Clan - Report errors from perspective of caller of a "clan" of modules
Diffstat (limited to 'perl-cpan')
-rwxr-xr-x | perl-cpan/perl-carp-clan/BUILD | 1 | ||||
-rwxr-xr-x | perl-cpan/perl-carp-clan/DEPENDS | 1 | ||||
-rwxr-xr-x | perl-cpan/perl-carp-clan/DETAILS | 55 | ||||
-rw-r--r-- | perl-cpan/perl-carp-clan/HISTORY | 2 |
4 files changed, 59 insertions, 0 deletions
diff --git a/perl-cpan/perl-carp-clan/BUILD b/perl-cpan/perl-carp-clan/BUILD new file mode 100755 index 0000000000..2de29cd903 --- /dev/null +++ b/perl-cpan/perl-carp-clan/BUILD @@ -0,0 +1 @@ +default_build_perl diff --git a/perl-cpan/perl-carp-clan/DEPENDS b/perl-cpan/perl-carp-clan/DEPENDS new file mode 100755 index 0000000000..6826bc7952 --- /dev/null +++ b/perl-cpan/perl-carp-clan/DEPENDS @@ -0,0 +1 @@ +depends perl diff --git a/perl-cpan/perl-carp-clan/DETAILS b/perl-cpan/perl-carp-clan/DETAILS new file mode 100755 index 0000000000..9f3399bf33 --- /dev/null +++ b/perl-cpan/perl-carp-clan/DETAILS @@ -0,0 +1,55 @@ + SPELL=perl-carp-clan + VERSION=6.06 + SOURCE="Carp-Clan-$VERSION.tar.gz" + SOURCE_URL[0]=$PERL_CPAN_URL/authors/id/K/KE/KENTNL/$SOURCE + SOURCE_HASH=sha512:a3dede626814a71a5f99b25a5b01133ecd13037fd1fbbaacb04852962c5d23bb77c1cb70f417879ec173db0215904adb59136dd30de6166994aa9aa7b28ca08f +SOURCE_DIRECTORY="$BUILD_DIRECTORY/Carp-Clan-$VERSION" + WEB_SITE="http://search.cpan.org/~kentnl/Carp-Clan/" + LICENSE[0]="ART" + ENTERED=20180130 + KEYWORDS="" + SHORT="Carp::Clan - Report errors from perspective of caller of a "clan" of modules" +cat << EOF +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. ;-) + +The skipping of a clan (or family) of packages according to a pattern describing +its members is necessary in cases where these modules are not classes derived +from each other (and thus when examining @ISA - as in the original "Carp.pm" +module - doesn't help). + +The purpose and advantage of this is that a "clan" of modules can work together +(and call each other) and throw exceptions at various depths down the calling +hierarchy and still appear as a monolithic block (as though they were a single +module) from the perspective of the caller. + +In case you just want to ward off all error messages from the module in which +you "use Carp::Clan", i.e., if you want to make all error messages or warnings +to appear to originate from where your module was called (this is what you +usually used to "use Carp;" for ;-)), instead of in your module itself (which is +what you can do with a "die" or "warn" anyway), you do not need to provide a +pattern, the module will automatically provide the correct one for you. + +I.e., just "use Carp::Clan;" without any arguments and call "carp" or "croak" as +appropriate, and they will automatically defend your module against all blames! + +In other words, a pattern is only necessary if you want to make several modules +(more than one) work together and appear as though they were only one. +EOF diff --git a/perl-cpan/perl-carp-clan/HISTORY b/perl-cpan/perl-carp-clan/HISTORY new file mode 100644 index 0000000000..673045d94b --- /dev/null +++ b/perl-cpan/perl-carp-clan/HISTORY @@ -0,0 +1,2 @@ +2018-01-30 Ismael Luceno <ismael@sourcemage.org> + * BUILD, DEPENDS, DETAILS: spell created |