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';
} 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;