format_c,,
system("befehl") or warn "Konnte Befehl nicht ausführen: $!\n";
[quote=format_c,05.05.2004, 22:17]Anders:
system("befehl");
warn "Fehlgeschlagen: $!\n" if $!;
[/quote]
weder das eine noch das andere!
wenn ich mich beim ersten posting irre und ein zweites zur korrektur
schreibe, teste ich das einfach mal kurz durch.
der richtige code heisst:
system("command") and die $!;
warum, steht natürlich in perldoc -f system. es liefert 0 bei erfolg und
!= 0 bei fehler. ganz einfach deswegen, weil das unix-prozesse nun mal
so tun, damit sie bei einem fehler auch noch praktischerweise den fehlercode mitliefern können.
dein zweites beispiel wird immer "Fehlgeschlagen" ausgeben, falls $! mal
irgendwann im programm gesetzt wurde. probier's aus:
perl -wle'open NONSENSE, "nonsense";
print "open schlug fehl: $!" if $!;
system("ls");
print "system schlug fehl: $!" if $!'