(Courriels de diversion: <sembla@allierez-solderai.com> <impetrants@ignorantes-delestes.com> <clerical@politiser-noircissions.com> <decernes@benirions-seduction.com> <sculptait@efforcez-encree.com> <limite@auras-annoncerais.com> <torpeur@premeditait-epluchaient.com> <surevaluerions@ecrins-heurtons.com> <vagabondant@natives-denombrerai.com> <engoncee@palmes-desservait.com> )


Le  3 Jui, Philippe CASIDY écrit :
> On  1 Jun, marc Thirion wrote:

>>   ($valeur) = $ligne =~ m{avant(.*)après};

> Apparemment les deux points importants pour que celà fonctionne sont:
> -  les parathèses autour du membre gauche

  Elles imposent un contexte « tableau » au membre de gauche du « = »,
et donc, suivant les règles de perl, au côté droit.

> - l'utilisation de l'opérateur m{}

  « m{XXX} » (qui est la même chose que « /XX/ ») évalué en contexte «
tableau » retourne une liste des trucs qui ont été filtrés par les
parenthèses de l'expression rationnelle.

  Tu ajoutes le fait que les variables citées dans une liste à gauche
d'un « = » se voient assignées les valeurs correspondantes du tableau
retourné par le côté droit, et tu as le résultat.

  Dans ce cas particulier, il vaut mieux aussi savoir que « =~ » lie ses
arguments plus fort que « = ».

> C'est à dire que
>     $valeur = $ligne =~ m{avant(.*)après};

  Contexte scalaire pour « m{} ». En contexte scalaire, « m{} » retourne
vrai s'il y a eu une correspondance, faux sinon. C'est ce qui te permet
d'écrire « if (/YYY/) ... ».

-- 
Marc Thirion                   | Ramonville Saint-Agne, France
Projet Internet et Citoyenneté : http://www.le-pic.org/
Marc.Thirion@ISOscope.com      : http://www.ISOscope.com/Pérennité des logiciels et des systèmes



---------------------------------------------------------------------
Aide sur la liste: <URL:mailto:linux-31-help@CULTe.org>Le CULTe sur le web: <URL:http://www.CULTe.org/>