49 votes

Comment puis-je trouver le nombre de clés dans une table de hachage en Perl?

Comment puis-je trouver le nombre de clés dans un Perl hachage variable, comme Perl tableau $#?

81voto

chaos Points 69029
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.

3voto

joe Points 7966

nous pouvons l'utiliser comme cela trop

my $keys = keys(%r) ;
print "keys = $keys" ;

 0+(keys %r)

2voto

Zaid Points 21192

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"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X