O melhor tutorial hashes Perl em 2024. Neste tutorial você pode aprender Criando um hash,elemento de hash acesso,Leia o valor hash,Lê a chave de hash e valor,Detectando existe elemento,Obtém o tamanho de hash,Hash adicionar ou remover elementos,
Hash é um pares dechave / valor.
variáveis de hash Perl começar com um sinal de porcentagem (%) marcas.
Acessoformato de elemento de hash:$ {chave}.
O que se segue é um exemplo de hash simples:
#!/usr/bin/perl %data = ('google', 'google.com', 'w3big', 'w3write.com', 'taobao', 'taobao.com'); print "\$data{'google'} = $data{'google'}\n"; print "\$data{'w3big'} = $data{'w3big'}\n"; print "\$data{'taobao'} = $data{'taobao'}\n";
O programa acima, a saída é:
Você pode criar um hash das seguintes formas:
$data{'google'} = 'google.com'; $data{'w3big'} = 'w3write.com'; $data{'taobao'} = 'taobao.com';
O primeiro elemento da lista de chave, o segundo valor está.
%data = ('google', 'google.com', 'w3big', 'w3write.com', 'taobao', 'taobao.com');
Você também pode usar os=> símbolo para definir a chave / valor:
%data = ('google'=>'google.com', 'w3big'=>'w3write.com', 'taobao'=>'taobao.com');
Os exemplos seguintes são variantes dos exemplos anteriores, utilizar- em vez de aspas:
%data = (-google=>'google.com', -w3big=>'w3write.com', -taobao=>'taobao.com');
Usando esta tecla de modo não pode ter espaços, leia elemento maneira:
$val = %data{-google} $val = %data{-w3big}
formato elemento de hash Acesso:{$ key}, os exemplos são os seguintes:
#!/usr/bin/perl %data = ('google'=>'google.com', 'w3big'=>'w3write.com', 'taobao'=>'taobao.com'); print "\$data{'google'} = $data{'google'}\n"; print "\$data{'w3big'} = $data{'w3big'}\n"; print "\$data{'taobao'} = $data{'taobao'}\n";
O programa acima, a saída é:
Você pode gostar de um valor de extrato de matriz a partir do hash.
valor de hash extrair asintaxe de matriz: @ {key1, key2}.
#!/uer/bin/perl %data = (-taobao => 45, -google => 30, -w3big => 40); @array = @data{-taobao, -w3big}; print "Array : @array\n";
O programa acima, a saída é:
Array : 45 40
Podemos usar asteclas de função para ler todas as chaves de hash, a sintaxe é a seguinte:
keys %HASH
Esta função retorna uma matriz de todos os hash da chave de tudo.
#!/usr/bin/perl %data = ('google'=>'google.com', 'w3big'=>'w3write.com', 'taobao'=>'taobao.com'); @names = keys %data; print "$names[0]\n"; print "$names[1]\n"; print "$names[2]\n";
O programa acima, a saída é:
taobao google w3big
O que eu posso usar uma função semelhante para ler todos osvalores dos valores de hash, a sintaxe é a seguinte:
values %HASH
Esta função retorna uma matriz de todos os valores de todos os hashes.
#!/usr/bin/perl %data = ('google'=>'google.com', 'w3big'=>'w3write.com', 'taobao'=>'taobao.com'); @urls = values %data; print "$urls[0]\n"; print "$urls[1]\n"; print "$urls[2]\n";
O programa acima, a saída é:
taobao.com w3write.com google.com
Se você ler um par de chaves não-existente / valor no hash e retorna valorindefinido, e na implementação de um lembrete de aviso.
Para evitar essa situação, podemos usar a funçãoexiste para determinar se a chave existe, quando a existência lê:
#!/usr/bin/perl %data = ('google'=>'google.com', 'w3big'=>'w3write.com', 'taobao'=>'taobao.com'); if( exists($data{'facebook'} ) ){ print "facebook 的网址为 $data{'facebook'} \n"; } else { print "facebook 键不存在\n"; }
O programa acima, a saída é:
facebook 键不存
O código acima nós usamosif pt. else em uma seção posterior vamos apresentar específico.
Hash tamanho é o número de elementos que se podem obter através de todos os elementos da matriz para a chave ou o valor, e, em seguida, calcular o número de elementos da matriz para obter o tamanho da mistura, exemplos são os seguintes:
#!/usr/bin/perl %data = ('google'=>'google.com', 'w3big'=>'w3write.com', 'taobao'=>'taobao.com'); @keys = keys %data; $size = @keys; print "1 - 哈希大小: $size\n"; @values = values %data; $size = @values; print "2 - 哈希大小: $size\n";
O programa acima, a saída é:
1 - 哈希大小: 3 2 - 哈希大小: 3
Adicionar pares de chave / valor pode ser feito por simples assimilação. No entanto, a remoção de elementos de hash você precisa usar a função deexclusão:
#!/usr/bin/perl %data = ('google'=>'google.com', 'w3big'=>'w3write.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";
O programa acima, a saída é:
1 - 哈希大小: 3 2 - 哈希大小: 4 3 - 哈希大小: 3