[quote=Matze,27.09.2005, 18:32]
if ($var =~ /^(pl)|(ptk) (.+\.(pl)|(ptk))$/i) { # $var ist die Eingabe
...
[/quote]
Dann teste doch erstmal den Ausdruck!
Bist Du Dir bewußt, daß der Ausdruck zwar großartig aussieht, aber nur "pl" und "ptk" in $1 finden kann?
Wenn es keine dieser Dateien im Arbeitsverzeichnis des Skripts gibt, dann schlägt das erste
if ( -e $1 ) schon fehl. Vielleicht solltest Du auch lieber
if ( -x $1 ) testen, denn Du willst die Datei ja ausführen.
Siehe
perldoc -f -X für die Tests und was sie bedeuten.
Wenn
$var "ein Pfad der gesetzt sein kann" ist, was passiert, wenn es nicht gesetzt ist? Dann suchst Du plötzlich nach "/pl" und "/ptk".