#!perl
# This version of which will also print out the paths to all
# executables that are shadowed (the real one comes first, followed by
# things that are shadowed). I call this a feature, although your
# millage may vary.
sub search_dir {
local($dir, $command) = @_;
opendir(DIR, $dir) || die("Bad dir in path: $dir");
local(@allfiles) = readdir(DIR);
closedir(DIR);
local($bat) = 0;
local($com) = 0;
local($exe) = 0;
foreach $file (@allfiles) {
$file =~ tr/A-Z/a-z/;
if ($command . ".bat" eq $file) {
$bat = "$dir\\$file";
} elsif ($command . ".com" eq $file) {
$com = "$dir\\$file";
} elsif ($command . ".exe" eq $file) {
$exe = "$dir\\$file";
}
}
if ($bat) { print $bat, "\n"; }
if ($com) { print $com, "\n"; }
if ($exe) { print $exe, "\n"; }
}
@Paths = split(';', ".;" . $ENV{'PATH'});
$name = shift(@ARGV);
foreach $path (@Paths) {
&search_dir($path, $name);
}
syntax highlighted by Code2HTML, v. 0.9.1