Comment trouver le nombre de clés dans un hachage, par exemple en utilisant $#
pour les tableaux?
scalar keys %hash
ou juste
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
ne trouve pas le nombre d'éléments, il trouve le dernier index. scalar @array
trouve le nombre d'éléments.
nous pouvons utiliser comme ça aussi
my $keys = keys(%r) ;
print "keys = $keys" ;
0+(keys %r)
print scalar keys %hash;
ou
$X = keys %hash;
print $X;
keys %hash
renvoie la valeur des clés dans le contexte de liste qui est ensuite modifiée dans le contexte scalaire (lors de l'affectation à une variable scalaire).
Mais pas après Perl 5.10:
use feature ":5.10";
my %p = ();
say $#%p;
# $# is no longer supported
et pire:
use feature ":5.10";
my %p = (a=>1, b=>2, c=>3);
say $#{%p};
# -1