X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2Fsubs%2Fauto.pm;h=449ef8d78ee200f1d19d73229b494795a0bb023b;hb=256a9c812fb8e5df57568d5e1ad04a0756d9b5b8;hp=978ce41fc91b9b3aab744a98fd3415f3b9bfc11f;hpb=dbcfb4682f32b8e308025d9fb2ceaac416f42cce;p=perl%2Fmodules%2Fsubs-auto.git diff --git a/lib/subs/auto.pm b/lib/subs/auto.pm index 978ce41..449ef8d 100644 --- a/lib/subs/auto.pm +++ b/lib/subs/auto.pm @@ -16,11 +16,11 @@ subs::auto - Read barewords as subroutine names. =head1 VERSION -Version 0.04 +Version 0.05 =cut -our $VERSION = '0.04'; +our $VERSION = '0.05'; =head1 SYNOPSIS @@ -122,7 +122,7 @@ sub _reset { sub _fetch { (undef, my $data, my $func) = @_; return if $data->{guard} or $func =~ /::/ or exists $core{$func}; - $data->{guard} = 1; + local $data->{guard} = 1; my $hints = (caller 0)[10]; if ($hints and $hints->{subs__auto}) { my $mod = $func . '.pm'; @@ -142,20 +142,18 @@ sub _fetch { } else { _reset($data->{pkg}, $func); } - $data->{guard} = 0; return; } sub _store { (undef, my $data, my $func) = @_; return if $data->{guard}; - $data->{guard} = 1; + local $data->{guard} = 1; _reset($data->{pkg}, $func); - $data->{guard} = 0; return; } -my $wiz = wizard data => sub { +{ pkg => $_[1] } }, +my $wiz = wizard data => sub { +{ pkg => $_[1], guard => 0 } }, fetch => \&_fetch, store => \&_store;