X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FAutoLoader.pm;h=b42d5ff4b68cde79580f8a0eadaf8c8bb981a58a;hb=f6d6199cd6711f5e8a8e6c1a57445fa6f848c822;hp=ad6bc4013b77878bd755ea19b45e0af2b6093072;hpb=3e2f796abf3f79e1ab191424e6c63f33a4ee4497;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/AutoLoader.pm b/lib/AutoLoader.pm index ad6bc40..b42d5ff 100644 --- a/lib/AutoLoader.pm +++ b/lib/AutoLoader.pm @@ -1,6 +1,6 @@ package AutoLoader; -use 5.005_64; +use 5.006_001; our(@EXPORT, @EXPORT_OK, $VERSION); my $is_dosish; @@ -12,11 +12,11 @@ BEGIN { require Exporter; @EXPORT = @EXPORT = (); @EXPORT_OK = @EXPORT_OK = qw(AUTOLOAD); - $is_dosish = $^O eq 'dos' || $^O eq 'os2' || $^O eq 'MSWin32'; + $is_dosish = $^O eq 'dos' || $^O eq 'os2' || $^O eq 'MSWin32' || $^O eq 'NetWare'; $is_epoc = $^O eq 'epoc'; $is_vms = $^O eq 'VMS'; $is_macos = $^O eq 'MacOS'; - $VERSION = '5.58'; + $VERSION = '5.59'; } AUTOLOAD { @@ -57,14 +57,19 @@ AUTOLOAD { unless ($filename =~ m|^/|s) { if ($is_dosish) { unless ($filename =~ m{^([a-z]:)?[\\/]}is) { - $filename = "./$filename"; + if ($^O ne 'NetWare') { + $filename = "./$filename"; + } else { + $filename = "$filename"; + } } } elsif ($is_epoc) { unless ($filename =~ m{^([a-z?]:)?[\\/]}is) { $filename = "./$filename"; } - }elsif ($is_vms) { + } + elsif ($is_vms) { # XXX todo by VMSmiths $filename = "./$filename"; } @@ -84,6 +89,7 @@ AUTOLOAD { } } my $save = $@; + local $!; # Do not munge the value. eval { local $SIG{__DIE__}; require $filename }; if ($@) { if (substr($sub,-9) eq '::DESTROY') { @@ -138,7 +144,13 @@ sub import { my $path = $INC{$calldir . '.pm'}; if (defined($path)) { # Try absolute path name. - $path =~ s#^(.*)$calldir\.pm$#$1auto/$calldir/autosplit.ix#; + if ($is_macos) { + (my $malldir = $calldir) =~ tr#/#:#; + $path =~ s#^(.*)$malldir\.pm\z#$1auto:$malldir:autosplit.ix#s; + } else { + $path =~ s#^(.*)$calldir\.pm\z#$1auto/$calldir/autosplit.ix#; + } + eval { require $path; }; # If that failed, try relative path with normal @INC searching. if ($@) {