[Perl] Que faire contre ce « warning » ?

Philippe Delavalade philippe.delavalade at orange.fr
Sam 14 Jan 10:06:40 CET 2017


Bonjour la liste.

Voici un petit ECM qui produit le warning suivant :

Value of <HANDLE> construct can be "0"; test with defined() at ./truc.pl
line 11.

\begin{script}
#!/usr/bin/perl -w

use Modern::Perl;

my $src;
my $l;

open( $src, "<", "fichier" )
  || die "\nImpossible d'ouvrir fichier\n";

while( ($l = <$src>) && ($l !~ m/,1,/) ) {next;}

close $src;

exit 0;
\end{script}

À part cela, le script fait son boulot.

Je ne comprends pas d'où vient le problème ni comment le résoudre en
testant avec un defined().

On peut contourner le problème en mettant la seconde condition dans le
while avec par example
while($l = <$src<) {last if($l =~ m/,1,/);}

Mais ça n'explique pas la présence de l'avertissement.

Merci de vos lumières.

-- 
Ph. Delavalade


Plus d'informations sur la liste de diffusion Perl