exit bei if/else?
Klaus
- perl
Hallo Forum,
ich habe mit folgender Anweisung Probleme:
my $logFile = "c:/log.txt";
....diverse Anweisungen
if (open(FH,"+<$logFile")){
......
}
else{
exit;
}
....
Wenn log.txt nicht vorhanden ist, hängt sich das Script auf, obwohl es abbrechen sollte. Es läuft unter Apache und Win98 SE.
Ich habe fast den Verdacht, dass sich "exit" so nicht anwenden läßt.
Hat jemand eine Idee, woran das liegen könnte?
Gruß
Klaus
Solarstromerträge im Internet: www.tectosol.staticip.de
Halihallo Klaus
Wenn log.txt nicht vorhanden ist, hängt sich das Script auf, obwohl es abbrechen sollte. Es läuft unter Apache und Win98 SE.
Ich habe fast den Verdacht, dass sich "exit" so nicht anwenden läßt.
Nein. open lässt sich so nicht verwenden. Der Rückgabewert sagt überhaupt nichts über
die Existenz der Datei aus. Du möchtest folgendes Konstrukt verwenden:
unless (-e './log.txt') { exit; }
Viele Grüsse
Philipp
Hallo Philipp,
Danke für die schnelle Antwort und die Lösung.
Du möchtest folgendes Konstrukt verwenden:
unless (-e './log.txt') { exit; }
Allerdings ist mir jetzt völlig unklar, was "if (open(FH,"+<$logFile"))" zurückgibt, denn "open ... or die" sollte ja auch funktionieren.
Nochmals Danke und Gruß
Klaus
Halihallo Klaus
Du möchtest folgendes Konstrukt verwenden:
unless (-e './log.txt') { exit; }
Allerdings ist mir jetzt völlig unklar, was "if (open(FH,"+<$logFile"))" zurückgibt, denn "open ... or die" sollte ja auch funktionieren.
if (...) gibt gar nichts zurück, sondern open. open gibt einen definierten Wert zurück,
falls die Datei geöffnet werden konnte (das hat nix mit Existenz zu tun! - Und das war
der Fehler); und undef falls nicht. Wenn nun undef zurückgegeben wird, wird der
"or die" - ausgeführt.
Die Existenz einer Datei wird mit -e bzw. -f getestet.
Viele Grüsse
Philipp
Hallo Philipp,
if (...) gibt gar nichts zurück, sondern open. open gibt einen
definierten Wert zurück,
verstanden.
Danke und Grüsse
Klaus