perl系列:散列(hash)

数组内存贮的元素是有顺序的,可以从前面或后面进行添加或删除,但不能从中间插入(可以从中间删除)。

散列由键值对组成,其排列是没有顺序的。

%a    #散列a
$a{c}    #散列a中键c对应的值,注意括号的类型
keys %a    #获取散列a的所有键,以数组形式返回
values %a    #获取散列a的所有值,以数组形式返回

使用列表给散列赋值
    %a=(键, 值, 键, 值);    #实质是使用一个列表
    %a=(键=>值, 键=>值);    #效果相同,但视觉效果更好
    %a=@c ;

散列赋值给数组
@a=%b;    #所有键值对展开成列表

散列键值互换
    %a=reverse %b;    #应该在所有的值不重复的时候使用,否则难以预料后果

遍历散列
    while (($k, $v)=each %a) {;}    #一次返回一个键值对,直至全部访问

查看某个键是否存在
    exists $a{c};    #在散列a中查看键c是否存在,若有则返回真,即使该键对应的值为undef。
    %a=(1..3);
    if ($a{3}) {print "t\n";} else {print "f\n";}    #键“3”没有赋值,因此其值为undef,返回假
    if (exists $a{3}) {print "t\n";} else {print "f\n";}    #虽然键“3”对应的值为undef,但该键是存在的,因此返回真

删除某个键
    delete $a{c};    #删除散列a中的键c
    $a{c}=undef;    #赋值为undef并不能删除该键

关于双引号字符串内的替换
    由于%在双引号内没有特殊意义,所以不能替换整个散列。

转载于:https://my.oschina.net/explore/blog/93318

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值