X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2Fsubs%2Fauto.pm;h=9ec068731be7f8660edc98329e626809bc03baed;hb=27e144152262c7db7af02f0959345e201650e479;hp=465d2d8dca084e97e03228bceb21ca8b002a53a2;hpb=cd69c4462701dfb279e6a38447c1c3df768437cc;p=perl%2Fmodules%2Fsubs-auto.git diff --git a/lib/subs/auto.pm b/lib/subs/auto.pm index 465d2d8..9ec0687 100644 --- a/lib/subs/auto.pm +++ b/lib/subs/auto.pm @@ -111,12 +111,14 @@ sub _fetch { return if $data->{guard} or $func =~ /::/ or exists $core{$func}; local $data->{guard} = 1; + my $pkg = $data->{pkg}; + my $hints = (caller 0)[10]; if ($hints and $hints->{+(__PACKAGE__)}) { my $pm = $func . '.pm'; return if exists $INC{$pm}; - my $fqn = $data->{pkg} . '::' . $func; + my $fqn = $pkg . '::' . $func; my $cb = do { no strict 'refs'; *$fqn{CODE} }; if ($cb) { if (_REFCNT_PLACEHOLDERS and defined(my $data = getdata(&$cb, $tag))) { @@ -136,7 +138,7 @@ sub _fetch { no strict 'refs'; *$fqn = $cb; } else { - _reset($data->{pkg}, $func); + _reset($pkg, $func); } return; @@ -265,7 +267,7 @@ Thanks to Sebastien Aperghis-Tramoni for helping to name this pragma. =head1 COPYRIGHT & LICENSE -Copyright 2008 Vincent Pit, all rights reserved. +Copyright 2008,2009,2010 Vincent Pit, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.