#!/usr/bin/perl #-------------------------------------------------------------------- <; close($input); while (my $ligne=shift @LISTE) { # si la ligne contenue dans $ligne correspond au premier du patron $PATRON[0] my $terme=""; if ($ligne=~/$PATRON[0]<\/data>[^<]+?<\/data>([^<]+?)<\/data><\/element>/) { $terme=$terme.$1; my $longueur=1; my $indice=1; # alors il faut que je lise autant de ligne qu'il y a dans le patron et tester chaque terme du patron... while (($LISTE[$indice-1]=~/($PATRON[$indice])<\/data>[^<]+?<\/data>([^<]+?)<\/data><\/element>/) and ($indice <= $#PATRON)) { $indice++; $terme.=" ".$2; $longueur++; } if ($longueur == $#PATRON + 1) { $dicoPatron{$terme}++; $nbTerme++; } } } open my $fileResu,">:encoding(UTF-8)","perlIsTheBigOne.txt"; print $fileResu "$nbTerme éléments trouvés\n"; foreach my $patron (sort {$dicoPatron{$b} <=> $dicoPatron{$a} } keys %dicoPatron) { print $fileResu "$dicoPatron{$patron}\t$patron\n"; } close($fileResu);