Soit le fichier test ci-dessous :
Chicago, USA Frankfort, Allemagne Berlin, Allemagne Washington, USA Helsinki, Finlande New York, USA
Le code perl ci-dessous va permettre de rassembler les villes par pays :
#!/usr/bin/perl use strict; use warnings; my $pays; my %table; my $ville; my @ville; open(FILE, "test") or die "Impossible d'ouvrir le fichier test en lecture"; while(<FILE>) { chomp; ($ville,$pays) = split(/, /); push @{$table{$pays}}, $ville; } foreach $pays (sort keys %table) { print "$pays : "; @ville = @{$table{$pays}}; print join ', ', sort @ville; print ".\n"; } close FILE;
Résultat :
root@ks361289:~# ./test.pl Allemagne : Berlin, Frankfort. Finlande : Helsinki. USA : Chicago, New York, Washington.