Group: fr.comp.lang.perl · Group Profile
Author: KlausKlaus Date: Jul 10, 2007 07:53
On Jul 9, 7:07 pm, kurtz le pirate wrote:
>> Tester "if ($1)" est dangereux et potentiellement faux.
>
>> Pour être correct il faut écrire:
>
>> if (/<(.*)>(.*)<\/\1>/) {
>> if ($1 eq "AppName") {
[ snip ]
> ce que je ne comprends pas c'est que mon script me donne bien le
> résultat attendu :((
> je vais relire le perlfaq4 comme tu le suggère.
Dans Perlfaq4: "Comment repérer des éléments appariés ou imbriqués ?",
je pense la passage suivante correspond à ta question:
============================
[...]
++ situant entre deux caractères simples, un motif comme
++ /x([^x]*)x/ mettra les morceaux de l'intervalle dans $1.
++ Lorsque le séparateur est de plusieurs caractères, il
++ faudrait en utiliser un ressemblant plus à /alpha(.*?)omega/.
[...]
============================
On pourrait écrire également:
if (/<([^>]*?)>([^<]*?)<\/\1>/) {
--
Klaus
|