| Carp-Clan-Share documentation | Contained in the Carp-Clan-Share distribution. |
Carp::Clan::Share - Share your Carp::Clan settings with your whole Clan
Version 0.013
package My::Namespace
use Carp::Clan::Share; # My::Namespace::Carp now exists
...
package My::Namespace::Module
use My::Namespace::Carp; # Acts like "use Carp::Clan qw/^My::Namespace::/;"
...
package My::Other::Namespace;
# You can also pass options through to Carp::Clan
use Carp::Clan::Share qw/verbose/; # My::Other::Namespace::Carp now exists
...
package My::Other::Namespace::Module
use My::Other::Namespace::Carp; # Acts like "use Carp::Clan qw/^My::Other::Namespace:: verbose/;"
...
This is a very lightweight helper module (actually just an import method) that will automagically create a __PACKAGE__::Carp module for you.
Any arguments passed to the import (e.g. via use) method are forwarded along to Carp::Clan.
NOTE: If you use this from a package ending with ::Carp, then it will use the parent of of that package as the target namespace
package My::Namespace::Carp;
use Carp::Clan::Share;
package My::Namespace::Module
use My::Namespace::Carp; # Acts like "use Carp::Clan qw/^My::Namespace::/;"
Carp
Robert Krimen, <rkrimen at cpan.org>
Please report any bugs or feature requests to bug-carp-clan-share at rt.cpan.org, or through
the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Carp-Clan-Share. I will be notified, and then you'll
automatically be notified of progress on your bug as I make changes.
You can find documentation for this module with the perldoc command.
perldoc Carp::Clan::Share
You can also look for information at:
Copyright 2008 Robert Krimen
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Carp-Clan-Share documentation | Contained in the Carp-Clan-Share distribution. |
package Carp::Clan::Share; use warnings; use strict;
our $VERSION = '0.013'; require Carp::Clan; sub import { my $caller = caller(0); my @arguments = @_; shift @arguments; # Get rid of the package name $caller =~ s/::Carp$//; # If the user already named it Carp, use the parent of that. unshift @arguments, "^${caller}::"; my $package = "${caller}::Carp"; my $pm = join("/", split m/::/, $package) . ".pm"; $INC{$pm} = 1; eval "package $package;"; my $exporter; { no strict 'refs'; $exporter = *{"${package}::import"} = sub { push @_, @arguments; goto &Carp::Clan::import; }; } goto &$exporter; }
1; # End of Carp::Clan::Share