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