En Perl, j'ai besoin de lire un fichier .conf qui contient un 0 ou un 1. Si la valeur est un, j'ai besoin d'exécuter tout ce qui est dans l'instruction if. Voici ce que j'ai maintenant:Pourquoi ma condition Perl if est-elle toujours vraie?
open(CONF, "/var/web/onhit.conf");
if(<CONF>) {
print "Hello World!";
}
close(CONF);
Le contenu de l'instruction if évaluer toujours, même si le fichier .conf contient un 0. Je sais la lecture de fichier est correct, car ce code peut lire correctement le fichier:
open(CONF, "/var/web/onhit.conf");
print <CONF>;
close(CONF);
Si le fichier contient un 1, il imprime un 1 et vice versa. Est-ce que quelqu'un sait ce qui ne va pas avec mon premier extrait? Désolé, mais je suis un n00b chez Perl. :-)
Notez l'utilisation de Chomp() pour supprimer le saut de ligne. Sans cela, vous exécuteriez toujours la vraie branche indépendamment de la valeur. –
OK cela fonctionne. Merci. Vous avez oublié une parenthèse sur la première ligne cependant. Et je l'ai d'ailleurs mal dit sur mon post. L'instruction if est toujours évaluée. C'est corrigé maintenant. –
"Vous avez oublié une parenthèse sur la première ligne cependant." Woops. Fixé. –