hash de Perl
Hash es un paresclave / valor.
las variables de hash de Perl comienzan con un signo de porcentaje (%) marcas.
Accesoformato de elemento de hash:$ {} clave.
El siguiente es un simple ejemplo de hash:
#!/usr/bin/perl %data = ('google', 'google.com', 'w3big', 'w3big.com', 'taobao', 'taobao.com'); print "\$data{'google'} = $data{'google'}\n"; print "\$data{'w3big'} = $data{'w3big'}\n"; print "\$data{'taobao'} = $data{'taobao'}\n";
El programa anterior, la salida es:
La creación de un hash
Puede crear un hash de las dos formas siguientes:
En primer lugar, establecer el valor de cada tecla
$data{'google'} = 'google.com'; $data{'w3big'} = 'w3big.com'; $data{'taobao'} = 'taobao.com';
En segundo lugar, a través de la lista de canciones
El primer elemento de la lista de claves, el segundo es el valor.
%data = ('google', 'google.com', 'w3big', 'w3big.com', 'taobao', 'taobao.com');
También puede utilizar los=> símbolo para establecer la clave / valor:
%data = ('google'=>'google.com', 'w3big'=>'w3big.com', 'taobao'=>'taobao.com');
Los siguientes ejemplos son variantes de los ejemplos anteriores, usar- en lugar de comillas:
%data = (-google=>'google.com', -w3big=>'w3big.com', -taobao=>'taobao.com');
Utilizando esta tecla de modo que no puede tener espacios, leer modo elemento:
$val = %data{-google} $val = %data{-w3big}
elemento hash de acceso
formato elemento de hash de acceso:$ {clave}, los ejemplos son los siguientes:
#!/usr/bin/perl %data = ('google'=>'google.com', 'w3big'=>'w3big.com', 'taobao'=>'taobao.com'); print "\$data{'google'} = $data{'google'}\n"; print "\$data{'w3big'} = $data{'w3big'}\n"; print "\$data{'taobao'} = $data{'taobao'}\n";
El programa anterior, la salida es:
Leer valor hash
Puede recibir un valor de extracto de matriz a partir del hash.
valor hash extracción de lasintaxis de matrices: @ {key1, clave2}.
#!/uer/bin/perl %data = (-taobao => 45, -google => 30, -w3big => 40); @array = @data{-taobao, -w3big}; print "Array : @array\n";
El programa anterior, la salida es:
Array : 45 40
Lee la clave hash y de
Leer toda la llave
Podemos utilizar lasteclas de función para leer todas las claves hash, la sintaxis es la siguiente:
keys %HASH
Esta función devuelve una matriz de toda la clave hash de todos.
#!/usr/bin/perl %data = ('google'=>'google.com', 'w3big'=>'w3big.com', 'taobao'=>'taobao.com'); @names = keys %data; print "$names[0]\n"; print "$names[1]\n"; print "$names[2]\n";
El programa anterior, la salida es:
taobao google w3big
¿Qué puedo usar una función similar a leer todos losvalores de los valores de hash, la sintaxis es la siguiente:
values %HASH
Esta función devuelve una matriz de todos los valores de todos los hashes.
#!/usr/bin/perl %data = ('google'=>'google.com', 'w3big'=>'w3big.com', 'taobao'=>'taobao.com'); @urls = values %data; print "$urls[0]\n"; print "$urls[1]\n"; print "$urls[2]\n";
El programa anterior, la salida es:
taobao.com w3big.com google.com
Detectar existe el elemento
Si usted lee un par de claves inexistentes / valor en el hachís, y devuelve valorindefinido, y en la implementación de un recordatorio de alerta.
Para evitar esta situación, podemos utilizar la funciónexiste para determinar si existe la clave, cuando la existencia lee:
#!/usr/bin/perl %data = ('google'=>'google.com', 'w3big'=>'w3big.com', 'taobao'=>'taobao.com'); if( exists($data{'facebook'} ) ){ print "facebook 的网址为 $data{'facebook'} \n"; } else { print "facebook 键不存在\n"; }
El programa anterior, la salida es:
facebook 键不存
El código anterior usamosIF ... ELSE en una sección posterior vamos a introducir específica.
Obtiene el tamaño de hash
tamaño de hash es el número de elementos que podemos obtener a través de todos los elementos de la matriz a la clave o el valor, y luego calcular el número de elementos de la matriz para obtener el tamaño de la almohadilla, ejemplos son los siguientes:
#!/usr/bin/perl %data = ('google'=>'google.com', 'w3big'=>'w3big.com', 'taobao'=>'taobao.com'); @keys = keys %data; $size = @keys; print "1 - 哈希大小: $size\n"; @values = values %data; $size = @values; print "2 - 哈希大小: $size\n";
El programa anterior, la salida es:
1 - 哈希大小: 3 2 - 哈希大小: 3
Hash añadir o eliminar elementos
Añadir pares clave / valor se pueden hacer por simple asignación. Sin embargo, la eliminación de los elementos de hash es necesario utilizar la función deborrado:
#!/usr/bin/perl %data = ('google'=>'google.com', 'w3big'=>'w3big.com', 'taobao'=>'taobao.com'); @keys = keys %data; $size = @keys; print "1 - 哈希大小: $size\n"; # 添加元素 $data{'facebook'} = 'facebook.com'; @keys = keys %data; $size = @keys; print "2 - 哈希大小: $size\n"; # 删除哈希中的元素 delete $data{'taobao'}; @keys = keys %data; $size = @keys; print "3 - 哈希大小: $size\n";
El programa anterior, la salida es:
1 - 哈希大小: 3 2 - 哈希大小: 4 3 - 哈希大小: 3