Je peux utiliser IxHash pour mémoriser l'ordre d'insertion d'un hachage.Comment puis-je conserver l'ordre d'insertion d'un hachage Perl imbriqué?
use Tie::IxHash;
my %hash;
tie(%hash, 'Tie::IxHash');
%hash = (
x => 10,
z => 20,
q => { a1 => 1, a3 => 5, a2=>2,},
y => 30,
);
printf("keys %s\n", join(" ", keys %hash));
=> keys x z q y
Que diriez-vous du hachage imbriqué?
printf("keys %s\n", join(" ", keys %{$hash{q}}));
keys a2 a1 a3
Je soupçonne que la réponse est non comme le hachage q est anonyme et l'ordre est perdu avant IxHash voit. Je sais que je peux faire Tie sur $ hash {q} et ensuite ajouter les éléments, mais j'aime utiliser l'affectation unique pour construire le hachage.
Y at-il un truc?