Un hash es una colección de pares clave/valor .
Las variables hash en Perl comienzan con un signo de porcentaje (%).
Acceda al formato del elemento hash: ${key} .
Aquí hay un ejemplo de hash simple:
Al ejecutar el programa anterior, el resultado de salida es:
Hay dos formas de crear un hash:
$datos{'google'} = 'google.com';$datos{'codercto'} = 'codercto.com';$datos{'taobao'} = 'taobao.com';
El primer elemento de la lista es clave y el segundo elemento es valor.
%data = ('google', 'google.com', 'codercto', 'codercto.com', 'taobao', 'taobao.com');
También puede utilizar el símbolo => para establecer la clave/valor:
%data = ('google'=>'google.com', 'codercto'=>'codercto.com', 'taobao'=>'taobao.com');
El siguiente ejemplo es una variación del ejemplo anterior, utilizando - en lugar de comillas:
%data = (-google=>'google.com', -codercto=>'codercto.com', -taobao=>'taobao.com');
De esta forma, los espacios no pueden aparecer en la clave. La forma de leer elementos es:
$val = $datos{-google}$val = $datos{-codercto}
Acceda al formato del elemento hash: ${key} , el ejemplo es el siguiente:
Al ejecutar el programa anterior, el resultado de salida es:
Puede extraer valores de un hash como si fuera una matriz.
El valor hash se extrae en un formato de sintaxis de matriz: @{key1,key2} .
Al ejecutar el programa anterior, el resultado de salida es:
Matriz: 45 40
Podemos usar la función de claves para leer todas las claves del hash. La sintaxis es la siguiente:
claves %HASH
Esta función devuelve una matriz de todas las claves para todos los hashes.
Al ejecutar el programa anterior, el resultado de salida es:
taobaogooglecodercto
De manera similar, podemos usar la función de valores para leer todos los valores del hash. El formato de sintaxis es el siguiente:
valores %HASH
Esta función devuelve una matriz de todos los valores para todos los hashes.
Al ejecutar el programa anterior, el resultado de salida es:
taobao.comcodercto.comgoogle.com
Si lee un par clave/valor que no existe en el hash, se devolverá un valor indefinido y aparecerá una advertencia durante la ejecución.
Para evitar esta situación, podemos usar la función existe para determinar si la clave existe y leerla cuando exista:
Al ejecutar el programa anterior, el resultado de salida es:
la clave de facebook no existe
En el código anterior, utilizamos la declaración IF...ELSE , que presentaremos en detalle en los siguientes capítulos.
El tamaño del hash es la cantidad de elementos. Podemos obtener el tamaño del hash obteniendo primero todas las matrices de elementos de clave o valor y luego calculando la cantidad de elementos de la matriz.
Al ejecutar el programa anterior, el resultado de salida es:
1 - Tamaño de hash: 32 - Tamaño de hash: 3
Se pueden agregar pares clave/valor mediante una asignación simple. Pero para eliminar un elemento hash necesitas usar la función de eliminación :
Al ejecutar el programa anterior, el resultado de salida es:
1 - tamaño de hash: 32 - tamaño de hash: 43 - tamaño de hash: 3