File::Which - portables (p)which

Veröffentlicht von Thomas Fahle am (Permalink)

File::Which von Adam Kennedy bietet ein portables which, auch für Betriebssysteme, auf denen dieses Tool nicht verfügbar ist.

Which Way

 

which

Das which utility zeigt unter Linux den vollen Pfad zu einer ausführbaren Datei an:

$ which perldoc
/usr/local/bin/perldoc

$ which -a perldoc
/usr/local/bin/perldoc
/usr/bin/perldoc

 

pwhich

Ein vergleichbares Ergebnis erzielt das Perl-Programm pwhich, das zum Lieferumfang von File::Which gehört:

$ pwhich perldoc
/usr/local/bin/perldoc

$ pwhich -a perldoc
/usr/local/bin/perldoc
/usr/bin/perldoc

 

Beispiel: File::Which

Ein einfaches Beispiel für die Einbindung in eigene Programme:

#!/usr/bin/perl
use strict;
use warnings;
use File::Which;   # exports which()


my $what = 'perldoc';  # executable ohne Pfad, nach dem gesucht wird

my $path     = $ENV{PATH};
my $exe_path = which( $what ); # skalaler Kontext - Liefert den ersten Treffer in $path
my @paths    = which( $what ); # Listenkontext - Liefert alle Treffer in $path 

print "PATH Enviroment:          $path\n";

if ( defined $exe_path ) {  # Mindestens ein Treffer
	print "Executable (First Match): $exe_path\n";
	print "Alle Executables:         ", join(", ", @paths), "\n";
} else {
	print "Kein Treffer fuer $what\n";
}

Das Programm erzeugt unter Windows folgende Ausgabe:

X:\>perl which.pl
PATH Enviroment:          C:\Perl\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\cygwin\bin;C:\Programme\jEdit;C:\WINDOWS\system32\WindowsPowerShell\v1.0
Executable (First Match): C:\Perl\bin\perldoc.BAT
Alle Executables:         C:\Perl\bin\perldoc.BAT

Siehe auch

Bildnachweis

Which Way? von Urville Djasim.

Weitere Posts