美文网首页
perl-four(2018-05-26)

perl-four(2018-05-26)

作者: 简单点lili | 来源:发表于2018-05-26 21:24 被阅读0次

第四章和第五章先省略

第六章 哈希

先解释一下:

哈希(以前称为关联数组)是一种数据结构,和数组的相似之处在于可以容纳任意多的值并且按需取用;

两者的不同之处在于索引方式,数组使用数字来做索引,哈希却是以名字来做索引,

哈希的索引值,称为键(key),并不是数字,可以是任意唯一的字符串。

哈希没有顺序,有的只是键值对的集合。

哈希的值可以是数字、字符串、undef这些类型的集合,但是哈希的键是唯一的字符串。

1、访问哈希元素

使用花括号,$hash{$some_key}

2、访问整个哈希

要指代全部哈希,使用%作为前缀。

3、哈希赋值

my %new_hash=%old_hash

4、胖箭头(胖逗号)

=>,在任何需要逗号隔开的地方也可以使用胖逗号。对perl来说没什么区别。

一般来说,键都会比较简单的字符串,如果键是以字母、数字、下划线组成的,没有以数字开头,那么引号可以省略。这类无需引号的字符序列,我们称之为裸字。因为它是孤立存在的。

还有一类可以省略引号的关键点是:在花括号中检索特定键名的元素时。

5、哈希函数

perl存在很多函数可以一次性处理整个哈希

第一个:keys和values函数

代码 输出

keys函数返回哈希中的键列表,values函数返回哈希中对应的值列表。

第二个:each函数

如果需要迭代(逐项处理其中每一个元素)整个哈希,会使用到echo函数,它以包含两个元素的列表的形式返回键-值对;

在实际的使用中,唯一适合使用each的地方就是while循环中;

哈希会记得上次访问的位置,技术话来讲就是个哈希都有一个迭代器;

如果要依次处理哈希,那么就要用到对键排序。

第三个:exists函数

检查哈希中是否存在某个键时,使用exists函数,返回真或者假,分别表示键存在与否,与对应的值无关。

第四个:delete函数

能删除哈希中指定的键和其对应的值,如果没有这样的键,那么他就会直接结束,而不会出现任何警告和错误信息。

6、哈希元素内插

将单一哈希元素内插但双引号引起的字符串中。但是不支持内插整个哈希。

双引号需要反斜线转义的魔力字符:$和@,因为他们引入了一个perl将要内插的变量。

7、%ENV哈希

perl访问周围环境,就是访问%ENV哈希。

比如,我们常常需要从%ENV中读取PATH的值;

输入 输出

相关文章

网友评论

      本文标题:perl-four(2018-05-26)

      本文链接:https://www.haomeiwen.com/subject/gemmjftx.html