use strict; use locale; my ( @formes, @categories, @lemmes ); while ( my $ligne = ){ chomp $ligne; my @t = split ( /\t/, $ligne ); push ( @formes, $t[0] ); push ( @categories, $t[1] ); push ( @lemmes, $t[2] ); } for ( my $i = 0 ; $i <= ($#formes - 2) ; $i++ ) { if ( ($categories[$i] eq "NOM") and ( ($lemmes[$i+1] eq "de") or ($lemmes[$i+1] eq "du") ) and ($categories[$i+2] eq "NOM") ) { print $formes[$i], " ", $formes[$i+1], " ", $formes[$i+2], "\n"; } }