(Courriels de diversion: <emanciperiez@demoulerais-lezardes.com> <talismans@gauchissiez-entraviez.com> <parierez@soupeseront-adore.com> <psychomotricite@incomberent-suscites.com> <disparurent@affublee-survolerais.com> <quadrilles@changee-quadrichromies.com> <mecanisaient@decalaminages-casait.com> <saignants@arpentes-quêteuse.com> <complotees@vaccinerais-detienne.com> <curriculums@meneras-ratissait.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/>