用户名: 密码: 忘记密码? 注册

perl---hash

作者:  时间: 2010-11-03
1. what is hash?
哈希是一种数据结构,和数组类似,可以将值存放到其中,或者从中取回值。但是,和数组不同的是,其索引不是数字,而是名字。也就是说,索引(这里,我们将它叫key)不是数字而是任意的唯一的字符串.but the key must be unique in the hash.另一种思考hash 的方法是,把它看作一堆数据(a barrel of data),每一个数据都有一个相应的标签。可以通过标签访问此标签对应的元素。但其中是没有“第一个”元素的概念的。在数组中,数组元素从0,1,2 开始编号。但在hash中,没有确定的顺序,因此也没有第一个元素。只是一些key/value 对的集合。

2. 哈希元素的存取
要访问hash 元素,可以使用下面的语法:
$hash{$some_key}

3. 作为整体的hash
要引用整个hash,使用百分号(“%”)作为前缀。%some_hash = (“foo”, 35, “bar”, 12.4, 2.5, “hello”, “wilma”, 1.72e30, “betty”, “bye\n”);
hash 的值(在列表context 中)是一个key/value 对的列表:
@array_array = %some_hash;
我们把这称为:将hash 展开,并将其key/value 对返回到一个列表中。返回的key/value 顺序和存放的顺序可能不同.

4. 大箭头符号(=>)
my %last_name = (“fred” => “flintstone”,“dino” => undef,“barney”=> “rubble”;“betty”=> “rubble”);给hash赋值。

5. 哈希函数
 1)keys 和values 函数
  keys 函数会返回此hash 的所有keys,values 函数将返回所有的values。如果hash 中没有元素,则此函数将返回空列表:
2)each 函数
如果想迭代hash 的每一个元素(如,检查每一个元素),一种通常的方法是使用each 函数,它将返回key/value 对的2元素列表
3)exists 函数
要查看hash 中是否存在某个key(某人是否有借书卡),可以使用exists 函数,如果hash 中存在此key,则返回true。
4)delete 函数
delete 函数将某个给定的key(包括其对应的value)从hash 中删除。my $person = “betty”;
delete $books{$person};