Comment puis-je trouver le nombre de clés dans un Perl hachage variable, comme Perl tableau $#
?
Réponses
Trop de publicités?scalar keys %hash
ou tout simplement
keys %hash
si vous êtes déjà dans un contexte scalaire, par exemple, my $hash_count = keys %hash
ou print 'bighash' if keys %hash > 1000
.
Incidemment, $#array
n'a pas trouvé le nombre des éléments, il trouve le dernier indice. scalar @array
trouve le nombre d'éléments.
Le suivant sera de retour un de moins que le nombre de clés dans votre hash. Vous l'aimez si vous êtes friands de l' $#array
-style de faire les choses (ou de concision):
$#{$hash};
CRITIQUE EDIT:
Tiens... c'est intéressant. Cela fonctionne si vous voulez l'utiliser comme une référence de tableau, mais pas si vous l'utilisez à l'extérieur. Il est donc utile si vous souhaitez accéder à la dernière touche de votre table de hachage, à condition que vous avez attribué à votre touches, comme un tableau à une temp: Check this out:
%hash = ( "barney" => "dinosaur", "elmo" => "monster");
@array = sort {$a cmp $b} keys %hash;
print $array[$#{$hash}];
# prints "elmo"