Cómo averiguar el número de pares de elementos en Perl хеше

La tarea. En el programa en el lenguaje de programación Perl es un hash. Es necesario saber cuántos pares los valores que en él se encuentra.

Por ejemplo, para este hash debe obtener el valor de 1:

my %h = (
    a => 'AAA',
);

Y para este tipo de hash debe obtener el valor de 3:

my %h = (
    a => 'AAA',
    b => 'BBB',
    c => 'CCC',
);

La solución

La solución de esta tarea es el primero en recibir todas las claves hash mediante keys, luego contar el número de claves mediante escalar contexto. Aquí está el script completo:

▶ Run
#!/usr/bin/perl

my %h = (
    a => 'AAA',
    b => 'BBB',
);

my $number = scalar keys %h;

print $number;

El script mostrará en la pantalla el número de 2. scalar keys %h es lo mismo que scalar(keys(%h)).

Esta solución funciona en todas las versiones de Perl. Y es muy probable que esta solución es la mejor.

La decisión en las nuevas versiones de Perl

A partir de la versión de Perl 5.26 número de pares de valores en хеше se puede conseguir simplemente con la ayuda de scalar %h.

Y gracias a esto había una densidad entre el hecho de cómo obtener el número de elementos en la matriz scalar @arr y cómo obtener el número de pares de valores en хеше scalar %h. Es una lástima que este comportamiento no fue creado originalmente.

Si utiliza scalar %h en Perl antes de 5.26, el resultado de esta operación será extraña la fracción de la especie 1/8. (la explicación de lo que significa esta fracción). Debido a esto, más confiable opción para averiguar el número de parejas en хеше todavía sigue siendo una opción scalar keys %h.

Temas relacionados

Otros articulos