diff options
author | Alexey Tourbin <at@altlinux.ru> | 2006-10-25 18:02:55 +0400 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2006-10-25 10:27:05 +0000 |
commit | af08d52dcc0fecaf93b69b919878fb338f1cd6de (patch) | |
tree | 8de4d1b7f4db9708fed39f1830c0212dfc775428 /lib/FindBin.pm | |
parent | 18857c0b9a4a6ccbd858fbf7ee28ac44fa382b14 (diff) | |
download | perl-af08d52dcc0fecaf93b69b919878fb338f1cd6de.tar.gz |
FindBin.pm: better fix for PATH entries
Message-ID: <20061025100255.GE7821@localhost.localdomain>
p4raw-id: //depot/perl@29103
Diffstat (limited to 'lib/FindBin.pm')
-rw-r--r-- | lib/FindBin.pm | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/lib/FindBin.pm b/lib/FindBin.pm index 0dbe550620..0d75414a33 100644 --- a/lib/FindBin.pm +++ b/lib/FindBin.pm @@ -104,7 +104,7 @@ use File::Spec; %EXPORT_TAGS = (ALL => [qw($Bin $Script $RealBin $RealScript $Dir $RealDir)]); @ISA = qw(Exporter); -$VERSION = "1.47"; +$VERSION = "1.48"; sub cwd2 { my $cwd = getcwd(); @@ -142,24 +142,19 @@ sub init { my $dir; foreach $dir (File::Spec->path) - { + { my $scr = File::Spec->catfile($dir, $script); - if(-r $scr && (!$dosish || -x _)) + + # $script can been found via PATH but perl could have + # been invoked as 'perl file'. Do a dumb check to see + # if $script is a perl program, if not then keep $script = $0 + # + # well we actually only check that it is an ASCII file + # we know its executable so it is probably a script + # of some sort. + if(-f $scr && -r _ && ($dosish || -x _) && -s _ && -T _) { $script = $scr; - - if (-f $0) - { - # $script has been found via PATH but perl could have - # been invoked as 'perl file'. Do a dumb check to see - # if $script is a perl program, if not then $script = $0 - # - # well we actually only check that it is an ASCII file - # we know its executable so it is probably a script - # of some sort. - - $script = $0 unless(-T $script); - } last; } } |