X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fautouse.pm;h=cbde3864bf1d6dd1c2711c031353786e645b9e44;hb=8b503b1a8d84e235d4f8455dd10d4d928b5a89e1;hp=85db01fa90f96b60bc2cadcd0d378f5c9aceb29b;hpb=ff270adde2ed532b630356e4973f5a74e6152498;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/autouse.pm b/lib/autouse.pm index 85db01f..cbde386 100644 --- a/lib/autouse.pm +++ b/lib/autouse.pm @@ -1,9 +1,9 @@ package autouse; #use strict; # debugging only -use 5.003_90; # ->can, for my $var +use 5.006; # use warnings -$autouse::VERSION = '1.04'; +$autouse::VERSION = '1.06'; $autouse::DEBUG ||= 0; @@ -50,11 +50,10 @@ sub import { my $load_sub = sub { unless ($INC{$pm}) { - eval {require $pm}; - die if $@; + require $pm; vet_import $module; } - no warnings 'redefine'; + no warnings qw(redefine prototype); *$closure_import_func = \&{"${module}::$closure_func"}; print "autousing $module; " ."imported $closure_func as $closure_import_func\n" @@ -63,7 +62,8 @@ sub import { }; if (defined $proto) { - *$closure_import_func = eval "sub ($proto) { &\$load_sub }"; + *$closure_import_func = eval "sub ($proto) { goto &\$load_sub }" + || die; } else { *$closure_import_func = $load_sub; }