(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/>