File::Which von Adam Kennedy bietet ein portables which, auch für Betriebssysteme, auf denen dieses Tool nicht verfügbar ist.
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
- File::Which - Portable implementation of the `which' utility
- pwhich - Perl-only `which'
- which - shows the full path of (shell) commands
- File::Which::Cached - faster subsequent which lookups
- Perl Power Tools
- Perl Tools Projekt
Bildnachweis
Which Way? von Urville Djasim.
Jetzt kommentieren