第六章 哈希
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",
);