哈希
哈希是一种数据结构,和数组相似的是可以容纳任意多的值,并且可以按需取用,而她和数组的不同之处在于,检索方式不同,数组是以数字下标来检索,而哈希是以唯一的名字来检索。
- 哈希的组成因素:一个个键-值对
- 键:只能用普通的字符串表示,数字会被强制转换成字符串,2 -> ‘2’。(唯一性)
- 值:可以是任何标量,整数,浮点数,字符串,undef等。(非唯一性)
- 哈希表增大时,perl随机选取任意一项数据还是和原来一样快。
1. 访问哈希元素
1.1 访问单个哈希元素
- 哈希变量的命名和其他的Perl标志符类似,可以使用字母,数字和下划线构成,但是不能以数字开头。
- 哈希有自己的名字空间,$hash{“fred”} 和 &hash 毫无关联。(不建议使用相同名字)
- 和访问数组类似,不过用花括号而非方括号来表示索引键,并且键表达式是字符串。
- 我们可以通过索引外括号判断访问的数据类型结构,{哈希},[数组]
- 建议哈希名称命名,可以在key-value间加上for;如 $work_id{‘fred’} = 5678, work_id for fred is 5678.
#!/usr/bin/perl
$hash{
$some_key}; #读取$some_key中字符串(key),对应于%hash中的值
#单个元素赋值
$hash{
'fred'} = 'flintstone'; #如果'fred' key已经存在,新值会覆盖原值
$hash{
'barney'} = 'rubble'; #如果'barney' key不存在,自动创建新键-值对(自动延展)
$name = $hash{
'wilam'}; #如果访问不存在的键,将会返回 undef