perl语言——哈希
1. 什么是哈希 hash
哈希是一种数据结构,可以存储任意长度的值并随意取用。
在数组中以数字为索引,但是哈希中以名字为索引,索引在哈希中称为键(key),它是任意唯一的字符串 ,即使是数字也会被转换成字符串。以键值对的形式存放数据。
注意:
- 哈希中的键都是唯一的。
- 值可以不是唯一的。
- 键以字符串形式保存。
- 以键值对的形式存放数据。
- 值可以是任何标量,比如数字,字符串,undef,及它们的组合。如果用数组给哈希中的索引赋值,那么赋的是数组最后一个的值。
2. 哈希的应用
主要应用场景:
- 按名字查找信息
- 按主机名找IP
- 按IP找主机
- 统计单词出现次数
- 按用户名统计每个人使用的磁盘数量。
- …………
3. 创建哈希对象并使用
整个哈希对象用**百分号%**做前缀。
哈希元素通过赋值来产生。
1 |
|
对哈希中键值对进行索引的时候用的是 **$前缀,并且是花括号{}**。
哈希和列表可以相互转化,可以通过列表对哈希赋值。格式如下程序,其中列表元素个数必须为偶数
1 |
|
两个哈希可以直接赋值。
1 |
|
胖箭头创建哈希
1 |
|
与之前的方法效果一样,主要是为了好看,并且可以省略键的引号。值的引号不能省略。
1 |
|
4. 哈希函数
reverse
将哈希的键与值互换,要求哈希的值也是唯一的
1
%H1 = reverse %H2;
keys和values函数
keys返回键列表,values返回值列表。
1 |
|
- each遍历哈希中的键值对
each每次返回一个键值对
1 |
|
每次调用each,返回下一对键值对列表,如果全都执行到最后,那么返回空列表。在while的条件表达式中是标量环境,列表在标量环境中表示列表中元素个数,此时元素个数为0,那么不满足while循环条件,循环结束。
- exists查看是否有某个键
1 |
|
- delete删除指定的键及对应值。
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!