哈希

2019-03-25  本文已影响0人  食梦狸猫

哈希可以容纳任意多的值并且能按需使用,且哈希以key值索引。哈希的值可以是数字,字符串,undef的组合。但key一定是字符串。哈希有自己的名字空间

访问哈希元素

hash{some_key}
这和访问数组做法类似,只是用了花括号而且此时的键表达式是字符串。

访问整个哈希

要访问整个哈希,可以用百分号%:%family_name。

同样对整个哈希赋值,列表中的元素应该是键值对:

%some_hash = ('foo',35,'bar',12.4,2.5,'hello')
@any_array = %some_hash  #展开哈希,得到的键值对顺序不会像当初一样,因为perl对哈希的快速检索存储做了特别的排序。
my %new_hash = %old_hash;
my %inverse_hash = reverse %any_hash;
#perl中会用列表中最后的键覆盖之前的键

胖箭头

这只是对哈希里逗号的另一种写法

my %last_name = (
  'fred'      =>   'flintstone',
  'dino'     =>    undef,
)

哈希函数

my @k = keys %hash;

而在标量上下文中,这两个函数会返回元素个数。

my $count = keys %hash;
while (($key,$value) = each %hash)
{
    print "$key => $value\n";
}

哈希的应用

if(exist $books{"dino"})
{

}
delete $books{"betty"}{}

这和把undef存入哈希元素是不同的,存入undef后,键是一定会存在的。

%ENV哈希

Perl访问运行环境可通过访问%ENV哈希,例如读取PATH值

print "PATH is $ENV{PATH}\n";
上一篇下一篇

猜你喜欢

热点阅读