[Perl] Que faire contre ce « warning » ?

Dominique Asselineau asseline at telecom-paristech.fr
Sam 14 Jan 11:55:59 CET 2017


Philippe Delavalade wrote on Sat, Jan 14, 2017 at 11:34:12AM +0100
> Le samedi 14 janvier à 11:12, Hugues a écrit :
> > Bonjour
> >
> > effectivement si tu ajoutes
> >
> > while( $src && ($l = <$src>) && ($l !~ m/,1,/) ) {next;}
> >
> > tu n'as plus le warning
> > mais aussi si tu supprimes
> >
> > ($l !~ m/,1,/)
> >  et tu le met dans le while
> >
> > il doit commencer a tester la deuxièmement condition avant la première ?

Ça semble contraire au spécif ?  En Perl, les expressions booléennes
sont-elles bien traitées de gauche à droite ?

> 
> C'est certainement ça l'idée car si je définis au départ
> my $l=''
> 
> (sans cela j'ai un autre warning tout ce qu'il y a de normal comme quoi $l
> est uninitialized) puis que j'inverse les condition dans le while, plus de
> warning...

ça marche en effet, sauf que si on traite la variable $l dans la
boucle, ça ne sera pas la valeur testée par =~ mais celle lue dans
$src après le && .

dom
--


Plus d'informations sur la liste de diffusion Perl