|
|
|
|
Bonsoir.
J'utilise Perl sous Windows XP.
Le script Perl qui suit provoque l'avertissement indiqué si l'ouverture du fichier (en lecture) ne réussit pas et seulement dans ce cas.
Quelqu'un peut-il me dire pourquoi ?
A part cela, tout me semble normal, mais je souhaite poser la question, parce qu'on m'a conseillé de corriger tout ce qui provoque des avertissements.
Par parenthèse, quelqu'un pourrait-il me dire comment on pourrait éviter cet avertissement ?
#!/usr/local/bin/perl -w # Sous Unix, sert à recevoir des avertissements.
# Je ne sais pas si cela sert sous Windows.
use strict;
# Le programme qui suit affiche l'avertissement "Use of uninitialized value in numeric eq (==) at OpenAvecValeurNonInitialisee.pl line 9.", mais uniquement si l'ouverture du fichier ne réussit pas. Dans les deux cas (que l'ouverture réussisse ou non), le résultat du programme est conforme aux attentes. Pourquoi cet avertissement, et pourquoi seulement dans un cas ?
if (open(FICHIERIN, "C:\\FichierFantome") == 0)
{
print "Fichier inexistant.";
}
else
{
close(FICHIERIN);
print "Le fichier existe."
}
Merci d'avance.
Tu veux afficher ton code s'il te plaît.
if (open(FICHIERIN, "C:\\FichierFantome") == 0) La fonction open renvoie vrai si elle réussit et undef sinon. Donc dans ton cas tu peux écrire unless (open FICHIERIN, "C:\FichierFantome") {
print "Fichier inexistant.";
}
else
{
close FICHIERIN;
print "Le fichier existe."
}
En revanche c'est mieux d'écrire quelque chose comme ça open FIC, "C:\le_fichier.txt"
or die "Impossible d'ouvrir le fichier : $!\n";
# fermeture de prog si le fichier n'est pas accessible.
# traitement de fichier
while ( <FIC> ) { print }
close FIC;
En ce qui concerne l'option -w elle fonctionne aussi sous les OS non Linux |
De toute façon les avertissements nous disent qu'il y a quelque chose qui ne vas pas.
|
Merci beaucoup.
|
Re,
|
Re,
|
Commentcamarche n'a pas l'air d'une mauvaise adresse non plus
|