第六章 哈希
1. 哈希定义
my %name = (
?"wang" ? => "abc",
?"zhang"? => "efg",
?"gao"??? => "hij",
);
2. 哈希的基本操作
my @k = keys %name;
my @v = values %name;
my $name = keys %name; #键值对个数
my %name2 = reverse %name;
$name{"wang"} = "aaa";
$name{$key} = "aaa";
foreach $key (sort keys %name) {
?print "$key => $name{$key} n";
}
3. 哈希相关函数
each()依次返回键值对列表:
?while(($key,$value) = each %name){
??print "$key => $value n";
?}
exists()检查hash中是否包含某个键:
?if (exists $name{"wang"}) {}
delete()从哈希中删除指定的键值对:
?delete $name{"zhang"};
4. %ENV 哈希保存了当前环境变量
?print "pash is $ENV{'PATH'} n";
5. 不带引号的哈希键 哈希的键值仅仅包含字母、数字和下划线、并且不是数字开头(裸词),就可以省略引号。 $score{"fred"} 可以写成 $score{fred} 胖箭头(=>)定义哈希时,哈希的键是裸词时,胖箭头会自动加上引号。 my %name = ( ?wang?? => "abc",?zhang? => "efg",?gao??? => "hij",);