Vous ne pouvez pas avoir une paire de scalaires comme une clé de hachage, mais vous pouvez faire un multi-niveaux hachage:
my %hash;
$hash{$key1}{$key2} = $value1;
$hash{$key1}{$key3} = $value2;
$hash{$key2}{$key3} = $value3;
Si vous voulez définir à la fois:
my %hash = ($key1 => { $key2 => $value1, $key3 => $value2 },
$key2 => { $key3 => $value3 });
Alternativement, si cela fonctionne pour votre situation, vous pourriez juste concaténer votre clé s ensemble
$hash{$key1 . $key2} = $value1; # etc
Ou ajouter un séparateur pour séparer les clés:
$hash{"$key1:$key2"} = $value1; # etc
connexes: [Hash :: multitouche] (http://p3rl.org/Hash::MultiKey) [Tie :: RefHash] (http://p3rl.org/Tie::RefHash) [Perl peut-il stocker une référence de tableau en tant que clé de hachage?] (Http: // stackoverflow.com/questions/3083433/can-perl-store-an-array-reference-as-a-hash-key) [Comment utiliser une 'référence de sous-programme' comme clé de hachage] (http://stackoverflow.com/questions/10795386/how-to-use-a-subroutine-reference-as-a-hash-key) – daxim