This is my patch patch.0a for perl5.000.
[p5sagit/p5-mst-13.2.git] / lib / AutoLoader.pm
index dba8ca2..3f5eef2 100644 (file)
@@ -1,13 +1,23 @@
 package AutoLoader;
+use Carp;
 
 AUTOLOAD {
     my $name = "auto/$AUTOLOAD.al";
     $name =~ s#::#/#g;
     eval {require $name};
     if ($@) {
-       ($p,$f,$l) = caller($AutoLevel);
-       $@ =~ s/ at .*\n//;
-       die "$@ at $f line $l\n";
+       # The load might just have failed because the filename was too
+       # long for some old SVR3 systems which treat long names as errors.
+       # If we can succesfully truncate a long name then it's worth a go.
+       # There is a slight risk that we could pick up the wrong file here
+       # but autosplit should have warned about that when splitting.
+       if ($name =~ s/(\w{12,})\.al$/substr($1,0,11).".al"/e){
+           eval {require $name};
+       }
+       if ($@){
+           $@ =~ s/ at .*\n//;
+           croak $@;
+       }
     }
     goto &$AUTOLOAD;
 }