In Perl muss ich eine .conf-Datei lesen, die entweder eine 0 oder eine 1 enthält. Wenn der Wert eins ist, muss ich ausführen, was in der if-Anweisung ist. Hier ist, was ich habe jetzt:Warum wird meine Perl-Bedingung immer als wahr bewertet?
open(CONF, "/var/web/onhit.conf");
if(<CONF>) {
print "Hello World!";
}
close(CONF);
Der Inhalt der if-Anweisung immer zu bewerten, auch wenn die Conf-Datei enthält eine 0 Ich weiß, dass die Datei lesen korrekt ist, da dieser Code die Datei korrekt lesen kann:
open(CONF, "/var/web/onhit.conf");
print <CONF>;
close(CONF);
Wenn die Datei eine 1 enthält, wird eine 1 gedruckt und umgekehrt. Weiß jemand, was mit meinem ersten Ausschnitt falsch ist? Sorry, aber ich bin ein n00b bei Perl. :-)
Beachten Sie die Verwendung von chomp(), um das Newline zu entfernen. Ohne sie würden Sie immer den wahren Zweig unabhängig vom Wert ausführen. –
OK, das funktioniert. Vielen Dank. Sie haben jedoch in der ersten Zeile eine Klammer vergessen. Und ich habe es tatsächlich falsch auf meinem Post gesagt. Die if-Anweisung wird immer ausgewertet. Es ist jetzt aber behoben. –
"Sie haben jedoch eine Klammer in der ersten Zeile vergessen." Woops. Fest. –