越到后面越晕,真的不知道那些字符、标点、括号哪个是哪个,代表什么了。。。
1. 什么是哈希
哈希:是一种数据结构,和数组相似之处是可以容纳任意多的值,不同之处是检索方式不同(数组以数字下标来检索,哈希以键key来检索)。
哈希的键,唯一的名字,只能使用普通的字符串表示。
- 为什么使用哈希
“找出重复项、唯一的、交叉引用、查表”等字眼的问题,需要用到哈希。
2. 访问哈希 ${ key }
使用语法:
$hash{$some_key}
数组是[]索引,哈希是{}
哈希变量的命名不能以数字开头。
- 访问整个哈希 %
要指代整个哈希,可以用百分号%作为前缀。
%family_name
- 哈希赋值 =
my %new_hash = %old_hash;
- 胖箭头 =>
my %last_name = (
'fred' => 'flinstone',
'dino' => undef,
'barney' => 'rubble'
);
3. 哈希操作符
- keys和values函数
keys函数:返回哈希的键列表;
value函数:返回对应的值列表。
my %hash = ('a' => 1, 'b'=> 2, 'c' => 3);
my @k = keys %hash;
my @v = values %hash;
- each函数
each函数:遍历哈希的每一个键-值对。唯一合适使用each的地方是在while循环中:
while ( ($key, $value) = each %hash ) {
print "$key => $value\n";
}
4. 哈希的典型应用
举例:某图书馆使用一个Perl程序,通过哈希记录每个人当前借走几本书。
- exists函数
exists函数:检查哈希中是否存在某个键,用在if判断语句中,存在返回真,不存在返回假。
- delete函数
delete函数:从哈希中删除指定的键及其相对应的值。
- 哈希元素内插
可以将单一哈希元素内插到双引号引起的的字符串中
foreach $person (sort keys %books) {
if ($books{$person}) {
print "$person has $books{$persons} items\n";
}
}
4. 特殊哈希%ENV
特殊哈希%ENV不用设置直接就能用。
Perl会把环境信息放到特殊哈希%ENV里面,比如从%ENV中读取键位PATH的值:
print "PATH is $ENV{PATH}\n";
输出大概为
PATH is /usr/local/bin:/usr/bin:/sbin:/usr/sbin
网友评论