1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
   |  
use strict;
use warnings;
my $data = "a -> b
a -> cd
c -> h
c -> d
b -> k";
 
open my $DICO, "<", \$data or die "Ouverture impossible du fichier $!";   # meilleure syntaxe pour ouvrir un fichier
my %hachage;
while (my $ligne = <$DICO>) {
    $ligne =~ s/\s+//g;             # enlève tous les espaces, à ajuster si les données sont différentes de l'exemple
   my ($key, $val) = split /->/, $ligne;
    if (exists $hachage{$key}) {
        $hachage{$key} .= ",$val";  # le hash existe déjà pour cette clef, on concatène les chaînes
    } else {
        $hachage{$key} = $val;      # On crée le hash pour cette clef.
    }
}
close $DICO;
print "$_ -> $hachage{$_}\n" for sort keys %hachage; # relecture du hachage et impression du résultat | 
Partager