参考:http://blog.youkuaiyun.com/xrt95050/article/details/6427481
哈希表的定义:
%a = ();
定义哈希表%a, 并初始化为空。
%a = {"a"=>1, "b"=>2};
定义哈希表%a, %a中有两个键(key)和键值(value)的对应关系。
哈希表的访问:
$a{"a"};
哈希表的访问类似于数组的访问,但是哈希表的索引是key。需要注意在访问哈希表中的元素时需要使用标量的引导符$。
清空哈希表
undef %a;
提取哈希表中所有的键(key):
@all_keys = keys %a;
得到所有的键,但是键的大小是没有顺序的。
@all_keys = sort{$a{$b}<=>$a{$a}} (keys %a);
得到所有的键,并按键值从大到小排序。
@all_keys = sort{$a{$a}<=>$a{$b}} (keys %a);
按键值从小往大排序。
@all_keys = sort{$a{$a} cmp $a{$b}} (keys %a);
是按键值从小往大排序。但是是以字符串进行比较。
判断哈希表是否包含某个键
exists($a{$key});
遍历哈希表
foreach keys(%a) {}
perl提供里一种更有效的遍历方式,使用内嵌的each()函数:
while( ($key, $value) = each (%a)) {}
向哈希表中添加元素
$a{$key} = $value;
向哈希表%a中添加一个$key=>$value的元素
删除哈希表中的元素
delete($a{$key});