use strict; use locale; if ($#ARGV != 0){ die "Usage : ", $0, " SCHÉMAS\n"; } open(SCHEM, "<", $ARGV[0]) or die "impossible d'ouvrir ", $ARGV[0]; my %schemas; while (my $ligne = ){ chomp($ligne); my ($suff1, $suff2, $freq) = split(/\t/, $ligne); $schemas{$suff1}{$suff2} = $freq; } close(SCHEM); while (my $ligne = ){ chomp($ligne); for (my $i = 0; $i <= length($ligne) - 2; $i++){ my $suff1 = substr($ligne, $i); if (defined($schemas{$suff1})){ my @suff = sort {$schemas{$suff1}{$b} <=> $schemas{$suff1}{$a};} keys %{$schemas{$suff1}}; print substr($ligne, 0, $i), $suff[0], "\n"; last; } } }