Donc, j'ai un hachage% HoHoA. Chaque clé de hachage de niveau supérieur possède une clé de hachage de second niveau en tant que valeur. Chaque hachage de second niveau a des tableaux de tableaux en tant que valeurs.Perl: taille du tableau dans un hachage, dans un autre hachage
Dans le débogueur de Perl, il ressemble à ceci:
0 'Top_key_1'
1 HASH(0x...)
'Second_Key_1' => ARRAY(0x...)
0 'string 1'
1 'string 2'
'Second_Key_2' => ARRAY(0x...)
0 ARRAY(0x...)
0 'string 3'
1 'string 4'
2 'string 5'
1 ARRAY(0x...)
0 'string 6'
1 'string 7'
2 'Top_key_2'
J'essaie d'obtenir la taille de deux tableaux de chaque suite. Dans l'exemple ci-dessus , Second_Key_2 a deux tableaux, l'un 0e est de taille 3.
my $count1 = $#{$HoHoA{$top_key}{$second_key}[0]}+1;
my $count2 = $#{$HoHoA{$top_key}{$second_key}[1]}+1;
et
my $count1 = @{$HoHoA{$group}{$suite}[0]};
my $count2 = @{$HoHoA{$group}{$suite}[1]};
Je reçois un message d'erreur comme: Impossible d'utiliser la chaîne ("string 3 ") comme ARRAY ref pendant que" strict refs "est en cours d'utilisation
Pourquoi est-ce que j'obtiens ce message d'erreur, et que dois-je faire à la place?
Avez-vous lu [perldoc perldsc] (http://perldoc.perl.org/perldsc.html) et [perldoc perllol] (http://perldoc.perl.org/perllol.html)? Certaines structures très similaires sont disséquées en détail là-bas. – Ether
Aussi http://perlmonks.org/?node=References+quick+reference - bien que vous sembliez avoir l'idée, mais ayez une légère différence entre vos données et ce à quoi vous semblez vous attendre. – ysth