1 package Devel::Declare;
7 our $VERSION = 0.001000;
9 use vars qw(%declarators);
10 use base qw(DynaLoader);
12 bootstrap Devel::Declare;
15 my ($class, @args) = @_;
17 $class->setup_for($target => \@args);
23 $class->teardown_for($target);
27 my ($class, $target, $args) = @_;
29 $declarators{$target}{$_} = 1 for @$args;
33 my ($class, $target) = @_;
34 delete $declarators{$target};
42 my ($pack, $use, $name) = @_;
44 *{"${pack}::${name}"} = sub (&) { ($pack, $name, $_[0]); };
45 ($temp_pack, $temp_name) = ($pack, $name);
50 delete ${"${temp_pack}::"}{$temp_name};
63 use Devel::Declare qw(list of subs);
65 Calls Devel::Declare->setup_for(__PACKAGE__ => \@list_of_subs);
71 Calls Devel::Declare->teardown_for(__PACKAGE__);
75 Devel::Declare->setup_for($package => \@subnames);
77 Installs declarator magic (unless already installed) and registers
78 "${package}::$name" for each member of @subnames
82 Devel::Declare->teardown_for($package);
84 Deregisters all subs currently registered for $package and uninstalls
85 declarator magic if number of teardown_for calls matches number of setup_for
90 Matt S Trout - <mst@shadowcatsystems.co.uk>
92 Company: http://www.shadowcatsystems.co.uk/
93 Blog: http://chainsawblues.vox.com/
97 This library is free software under the same terms as perl itself