Perl 哈希

哈希是 key/value 对的集合,也称为字典、关联数组、映射等;

Perl中哈希变量以百分号 (%) 标记开始,访问哈希元素格式:$哈希名{key};如下:

注意:

1)哈希的索引用的是大括号!!! 而数组的索引使用中括号!!

2)哈希的定义可以是上面第6行的形式,即(key1, value1, key2, value2....),也可以使用胖箭头的形式,如上面第7行,即(key1=>value1, key2=>value2......)

3)可以直接输出哈希,但是不能加双引号,如上面的第10和第11行;

4)perl中有一个内建的哈希ENV,可以通过这个哈希来直接访问操作系统中的环境变量,如下:

print ($ENV{PATH});#输出操作系统中的PATH环境变量

读取哈希的值

可以像数组一样从哈希中提取值,通过key来索引,哈希值提取到数组语法格式:@{key1,key2},如下:

注意,提取某些哈希的值也要使用大括号!!

哈希相关函数

读取所有key,使用keys() 函数,并将所有的key作为一个数组返回(在标量上下文是返回元素的个数),语法格式如下:

keys %HASH

 类似的可以使用 values 函数来读取哈希所有的值,并返回一个数组(在标量上下文是返回元素的个数)语法格式如下:

values %HASH

 

如果在哈希中读取不存在的 key/value 对 ,会返回 undefined 值,且在执行时会有警告提醒;

为了避免这种情况,可以使用 exists 函数来判断key是否存在,存在的时候读取:

哈希中添加或删除元素

添加 key/value 对可以通过简单的赋值来完成,但是删除哈希元素需要使用 delete 函数:

 

遍历哈希

遍历哈希可以使用each和foreach;

each 每次可以获取一个键值对,并做位置标记,以便下次从这个位置开始遍历;

foreach 只能通过keys()  函数来遍历key,从而间接遍历哈希;

需要注意的是 each 遍历是不能保证遍历顺序的,而 foreach 可以首先对key 进行排序后遍历;

上面使用 while 循环,当迭代到最后一个后, each 迭代不带 key/value,所以列表为空,while 的条件为false,此时不会继续执行;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值