summaryrefslogtreecommitdiff
path: root/lib/FindBin.pm
diff options
context:
space:
mode:
authorAlexey Tourbin <at@altlinux.ru>2006-10-25 18:02:55 +0400
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2006-10-25 10:27:05 +0000
commitaf08d52dcc0fecaf93b69b919878fb338f1cd6de (patch)
tree8de4d1b7f4db9708fed39f1830c0212dfc775428 /lib/FindBin.pm
parent18857c0b9a4a6ccbd858fbf7ee28ac44fa382b14 (diff)
downloadperl-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.pm27
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;
}
}