每日学习:Perl语言学习之哈希(Hashes)
Posted 大同学吧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日学习:Perl语言学习之哈希(Hashes)相关的知识,希望对你有一定的参考价值。
关注并标星大同学吧
每天1次,打卡学习
积累1个新知识,增1分职场底气
作者称谓:wonder
个人介绍:前瞻性的眼光,和持之以恒的学习
半导体知识分享第99期
技能升级,从这里开始
哈希是一组键值对的集合,可以根据其键搜索对应的值。它是Perl提供的内置字典功能。
哈希变量以'%'符号开头。Perl要求哈希的键是字符串,而值可以是任何标量。哈希的键必须是唯一的,如果将新的键值对添加到哈希并且该键已经存在,则会覆盖其对应的值。
我们可以通过定义键值对在哈希中添加数据。与Perl数组一样,当添加或删除键值对时,哈希会增长和缩小。哈希和数组的主要区别在于数组索引是数字,而哈希索引可以是任意字符串。
定义和初始化
%hosts = ("www.yahoo.com","131.111.11.1", www.northenlight.com,"128.11.1.1");
为了增强可读性,我们可以使用=>,而不是逗号。上述例子可以写成:
%hosts = (
"www.yahoo.com" =>"131.111.11.1",
"www.northenlight.com" =>"128.11.1.1"
);
$hosts{"www.yahoo,com"}; # Returns131.111.11.1
$hosts{"www.northenlight.com"}; # Returns 128.11.1.1
与数组一样,也是使用$来访问哈希中的单个元素。但是,哈希中的索引是用花括号{}括起来的,因为其索引始终是字符串。
哈希操作
赋值是哈希中最基本的操作,其索引值是花括号{}括起来的字符串:
$month{"Jan"}=31;
与数组不同,哈希中索引的顺序不是自然有序整数。我们可以使用函数keys和values来依次访问所有键和值。
foreach $ip (keys %hosts){
print "The name of the site for the address $ip is$hosts{$ip}\n";
}
foreach $ip (values %hosts){
print "One of portals hasIP address $ip. Guess which one. \n";
}
我们还可以使用each函数对哈希进行遍历。
while (($dns, $ip) = each(%hosts)){
print "$dns has IP address$ip\n";
}
在哈希中可以使用 exists函数检查哈希中是否存在已定义的键值对。
if (exists($hosts{'www.yahoo.com'})) {
print $hosts{'www.yahoo.com'};}
往期回顾
1.
2.
3.
4.
5.
7.
8.
9.
10.
觉得不错,就点个在看喔
以上是关于每日学习:Perl语言学习之哈希(Hashes)的主要内容,如果未能解决你的问题,请参考以下文章