open(FILE,"$ARGV[0]"); #-------------------------------------------- # le patron cherché est NOM PREP NOM #-------------------------------------------- open(FILE,"$ARGV[0]"); #-------------------------------------------- # le patron cherché ici est du type NOM PREP NOM #-------------------------------------------- my @lignes=<FILE>; close(FILE); my %dicopatron=(); while (my $ligne=shift(@lignes)) { chomp $ligne; my $sequence=""; my $longueur=0; if ( $ligne =~ /^([^\t]+)\t[^\t]+\tNC.*/) { my $forme=$1; $sequence.=$forme; $longueur=1; my $nextligne=$lignes[0]; if ( $nextligne =~ /^([^\t]+)\t[^\t]+\tPREP.*/) { my $forme=$1; $sequence.=" ".$forme; $longueur=2; my $nextligne=$lignes[1]; if ( $nextligne =~ /^([^\t]+)\t[^\t]+\tNC.*/) { my $forme=$1; $sequence.=" ".$forme; $longueur=3; } } } if ($longueur == 3) { # print $sequence; $dicopatron{$sequence}++; # ou $dicopatron{$sequence}=$dicopatron{$sequence}+1; } } foreach my $patron (sort {$dicopatron{$b} <=> $dicopatron{$a}} (keys %dicopatron)) { print "$patron : $dicopatron{$patron}\n"; }