Change 18047 by [EMAIL PROTECTED] on 2002/10/22 16:20:18
Subject: [PATCH] AutoLoader gives wrong message
From: Peter Scott <[EMAIL PROTECTED]>
Date: Thu, 17 Oct 2002 19:54:56 -0700
Message-id: <[EMAIL PROTECTED]>
Affected files ...
.... //depot/perl/lib/AutoLoader.pm#29 edit
Differences ...
==== //depot/perl/lib/AutoLoader.pm#29 (text) ====
Index: perl/lib/AutoLoader.pm
--- perl/lib/AutoLoader.pm#28~17996~ Fri Oct 11 04:55:53 2002
+++ perl/lib/AutoLoader.pm Tue Oct 22 09:20:18 2002
@@ -92,23 +92,24 @@
eval { local $SIG{__DIE__}; require $filename };
if ($@) {
if (substr($sub,-9) eq '::DESTROY') {
- no strict 'refs';
+ no strict 'refs';
*$sub = sub {};
- } else {
+ $@ = undef;
+ } elsif ($@ =~ /^Can't locate/) {
# 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.
+ # If we can successfully 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 ($filename =~ s/(\w{12,})\.al$/substr($1,0,11).".al"/e){
eval { local $SIG{__DIE__}; require $filename };
}
- if ($@){
- $@ =~ s/ at .*\n//;
- my $error = $@;
- require Carp;
- Carp::croak($error);
- }
+ }
+ if ($@){
+ $@ =~ s/ at .*\n//;
+ my $error = $@;
+ require Carp;
+ Carp::croak($error);
}
}
$@ = $save;
@@ -124,9 +125,9 @@
#
if ($pkg eq 'AutoLoader') {
- no strict 'refs';
- *{ $callpkg . '::AUTOLOAD' } = \&AUTOLOAD
- if @_ and $_[0] =~ /^&?AUTOLOAD$/;
+ no strict 'refs';
+ *{ $callpkg . '::AUTOLOAD' } = \&AUTOLOAD
+ if @_ and $_[0] =~ /^&?AUTOLOAD$/;
}
#
End of Patch.