Document that using :encoding layer requires using Encode.
[p5sagit/p5-mst-13.2.git] / lib / AutoLoader.pm
index 564aeb1..4b2261e 100644 (file)
@@ -1,6 +1,6 @@
 package AutoLoader;
 
-use 5.005_64;
+use 5.6.0;
 our(@EXPORT, @EXPORT_OK, $VERSION);
 
 my $is_dosish;
@@ -68,7 +68,8 @@ AUTOLOAD {
                        unless ($filename =~ m{^([a-z?]:)?[\\/]}is) {
                             $filename = "./$filename";
                        }
-                   }elsif ($is_vms) {
+                   }
+                   elsif ($is_vms) {
                        # XXX todo by VMSmiths
                        $filename = "./$filename";
                    }
@@ -88,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') {
@@ -142,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 ($@) {