Hachage Perl
Un hachage est une collection de paires clé/valeur.
Les variables de hachage en Perl commencent par un signe de pourcentage (%).
Accéder au format de l'élément de hachage : ${key}.
Ce qui suit est un exemple de hachage simple :
#!/usr/bin/perl %data = ('google', 'google.com', 'php', 'php.cn', 'taobao', 'taobao.com'); print "$data{'google'} = $data{'google'}\n"; print "$data{'php'} = $data{'php'}\n"; print "$data{'taobao'} = $data{'taobao'}\n";
Exécutez le programme ci-dessus, le résultat de sortie est :
Créer Ha Hash
peut être créé des deux manières suivantes :
1. Définir la valeur
$data{'google'} = 'google.com'; $data{'php'} = 'php.cn'; $data{'taobao'} = 'taobao.com';
pour chaque clé 2. Définir
liste via la liste Le le premier élément est la clé et le second est la valeur.
%data = ('google', 'google.com', 'php', 'php.cn', 'taobao', 'taobao.com');
Vous pouvez également utiliser le symbole => pour définir la clé/valeur :
%data = ('google'=>'google.com', 'php'=>'php.cn', 'taobao'=>'taobao.com');
L'exemple suivant est une variante de l'exemple ci-dessus, utilisez - Au lieu de guillemets :
%data = (-google=>'google.com', -php=>'php.cn', -taobao=>'taobao.com');
En utilisant cette méthode, les espaces ne peuvent pas apparaître dans la clé. La façon de lire les éléments est :
$val = %data{-google} $val = %data{-php}
Accéder aux éléments de hachage
.Accès au format des éléments de hachage : ${key}, l'exemple est le suivant :
#!/usr/bin/perl %data = ('google'=>'google.com', 'php'=>'php.cn', 'taobao'=>'taobao.com'); print "$data{'google'} = $data{'google'}\n"; print "$data{'php'} = $data{'php'}\n"; print "$data{'taobao'} = $data{'taobao'}\n";
Exécutez le programme ci-dessus, le résultat de sortie est :
Lire les valeurs de hachage
Vous pouvez extraire les valeurs d'un hachage tout comme un tableau.
La valeur de hachage est extraite au format de syntaxe de tableau : @{key1,key2}.
#!/uer/bin/perl %data = (-taobao => 45, -google => 30, -php => 40); @array = @data{-taobao, -php}; print "Array : @array\n";
Exécutez le programme ci-dessus, le résultat de sortie est :
Array : 45 40
Lisez la clé de hachage et la valeur
Lisez toutes les clés
Nous vous peut utiliser la fonction keys pour lire toutes les clés d'un hachage. Le format de syntaxe est le suivant :
keys %HASH
Cette fonction renvoie un tableau de toutes les clés de tous les hachages.
#!/usr/bin/perl %data = ('google'=>'google.com', 'php'=>'php.cn', 'taobao'=>'taobao.com'); @names = keys %data; print "$names[0]\n"; print "$names[1]\n"; print "$names[2]\n";
exécute le programme ci-dessus, et le résultat de sortie est :
taobao google php
De même, nous pouvons utiliser la fonction values pour lire toutes les valeurs du hachage. Le format de syntaxe est le suivant :
values %HASH
Cette fonction renvoie un tableau de toutes les valeurs de tous les hachages.
#!/usr/bin/perl %data = ('google'=>'google.com', 'php'=>'php.cn', 'taobao'=>'taobao.com'); @urls = values %data; print "$urls[0]\n"; print "$urls[1]\n"; print "$urls[2]\n";
Exécutez le programme ci-dessus, le résultat de sortie est :
taobao.com php.cn google.com
Détectez si l'élément existe
Si vous lisez une paire clé/valeur inexistante dans le hash renverra la valeur undefined et il y aura un avertissement lors de l'exécution.
Afin d'éviter cette situation, nous pouvons utiliser la fonction exists pour déterminer si la clé existe. Lorsqu'elle existe, lisez :
#!/usr/bin/perl %data = ('google'=>'google.com', 'php'=>'php.cn', 'taobao'=>'taobao.com'); if( exists($data{'facebook'} ) ){ print "facebook 的网址为 $data{'facebook'} \n"; } else { print "facebook 键不存在\n"; }
Exécutez le programme ci-dessus, et le résultat de sortie est :
facebook 键不存
Dans le code ci-dessus, nous avons utilisé l'instruction IF...ELSE, que nous présenterons en détail dans les chapitres suivants.
Obtenir la taille du hachage
La taille du hachage est le nombre d'éléments. Nous pouvons obtenir le hachage en obtenant d'abord tous les tableaux d'éléments de clé ou de valeur, puis en calculant le nombre. des éléments du tableau. La taille de Ceci se fait via une simple affectation. Mais pour supprimer des éléments de hachage, vous devez utiliser la fonction
delete:
#!/usr/bin/perl %data = ('google'=>'google.com', 'php'=>'php.cn', 'taobao'=>'taobao.com'); @keys = keys %data; $size = @keys; print "1 - 哈希大小: $size\n"; @values = values %data; $size = @values; print "2 - 哈希大小: $size\n";
Exécutez le programme ci-dessus, le résultat de sortie est :