use strict; use locale; no sort 'stable'; if ($#ARGV != 1) { die "Usage : ", $0, " LEXIQUE1 LEXIQUE2\n"; } my %lex; lire_lex($ARGV[0]); lire_lex($ARGV[1]); foreach my $f (sort keys %lex){ foreach my $l ( sort keys %{$lex{$f}}){ foreach my $c (sort keys %{$lex{$f}{$l}}){ print $f, "\t", $l, "\t", $c, "\n"; } } } sub lire_lex{ my ($fichier) = @_; open(LEX, "<", $fichier) or die "impossible d'ouvrir ", $fichier; while (my $ligne = ){ chomp($ligne); my ($forme, $lemme, $cat) = split(/\t/, $ligne); $lex{$forme}{$lemme}{$cat} = 1; } close(LEX); }