Probléme perl avec l'operateur =~

Page principale

Répondre à ce message
Auteur: Regis Gras
Date:  
À: guilde
Sujet: Probléme perl avec l'operateur =~
J'utilise =~ (match) pour reperer un motif dans une chaine
    Vu que cela ne produisait pas ce que souhaitais, j'ai ecrit un 
programme de test qui met
en evidence mon probléme:
-----------------------------------------------------------
use strict;
my $ligne;
my $indice;
my $motif;
my @motif_cherche;


$motif_cherche[0] = "bb";
$motif_cherche[1] = "123";
$motif_cherche[2] = "nnn";
$motif_cherche[3] = "aa";
$motif_cherche[4] = "lkjhg";
$motif_cherche[5] = "bg";
$motif_cherche[6] = "aa";
$motif_cherche[7] = "aa";
$motif_cherche[8] = "nnn";

$ligne = "aa nnn bg kjy lku bb fde 123";
print "Ligne a explorer $ligne \n\n";
for ($indice=0;$indice<9;$indice++) {
        if ($ligne =~ /$motif_cherche[$indice]/g ) {
        print ("Indice du motif: $indice motif:  $motif_cherche[$indice] 
\t dans $ligne  \n");
        }
}
-----------------------------------------------------------


A l'excution, j'ai le resultat suivant:
Indice du motif: 0 motif:  bb      dans aa nnn bg kjy lku bb fde 123
Indice du motif: 1 motif:  123     dans aa nnn bg kjy lku bb fde 123
Indice du motif: 3 motif:  aa      dans aa nnn bg kjy lku bb fde 123
Indice du motif: 5 motif:  bg      dans aa nnn bg kjy lku bb fde 123
Indice du motif: 7 motif:  aa      dans aa nnn bg kjy lku bb fde 123
Indice du motif: 8 motif:  nnn     dans aa nnn bg kjy lku bb fde 123


D'où mes questions.
    - Pourquoi "nnn" n'est pas trouvé à l'indice 2 ?
    - Pourquoi "aa" n'est pas trouvé à l'indice 6 ?


Bien cordialement

--
==================================================================
| Régis Gras                 | http://dcm.ujf-grenoble.fr        |
|   D.C.M.                   | mailto:Regis.Gras@ujf-grenoble.fr |
| 301, rue de la chimie      |         --------------            |
| DU BP 53                   | Tel 04 76 51 48 02                |
| 38041 Grenoble Cedex 9     | Fax 04 76 51 40 89                |

==================================================================