数据类型之哈希
发布时间:2020-12-16 00:22:00 所属栏目:大数据 来源:网络整理
导读:-- Start 学过 Java 的人应该对 hash 不陌生,所谓 hash 就是存储一对 key 和 value 的一种数据结构,它用来存储一种对应关系,如:省份证号和姓名,IP 地址和域名等等。在 Perl 中,key 必须是字符串,value 可以是任何标量。下面的例子演示如何使用hash。
-- Start 学过 Java 的人应该对 hash 不陌生,所谓 hash 就是存储一对 key 和 value 的一种数据结构,它用来存储一种对应关系,如:省份证号和姓名,IP 地址和域名等等。在 Perl 中,key 必须是字符串,value 可以是任何标量。下面的例子演示如何使用hash。 #!/usr/bin/perl %IDForName; # 空hash %IDForName = (); # 空hash %IDForName = ('1','张三','2','李四'); # 将列表中的值赋给hash %IDForName = ('1'=>'张三','2'=>'李四'); # => 相当于逗号,使用上和逗号没有任何区别 @people = ('1','李四'); %IDForName = @people; # 将数组中的值赋给hash @people2 = %IDForName;# 将hash中的值赋给数组 %IDForName2 = %IDForName; # 将一个hash中的值赋给另一个hash $IDForName{'3'} = '王五'; # 增加 delete $IDForName{'3'}; # 删除 $name = $IDForName{'1'}; # 查找 $IDForName{'1'} = '赵六'; # 修改 @IDs = keys %IDForName; # 返回所有的 key $IDAmount = keys %IDForName; # 返回 key 的数量 @names = values %IDForName; # 返回所有的 value $nameAmount = values %IDForName; # 返回 value 的数量 %NameForID = reverse %IDForName; # 交换 key 和 value # 判断是否存在某个键 if (exists $IDForName{'3'}) { print "this key already exists.n"; } # 迭代 hash while(($id,$name) = each %IDForName) { print "$id => $namen"; } # 先对 key 按字符串排序排序后迭代 hash foreach $id (sort keys %IDForName) { $name = $IDForName{$id}; print "$id => $namen"; } # 先对 key 按数字排序排序后迭代 hash foreach $id (sort{$a<=>$b} keys %IDForName) { $name = $IDForName{$id}; print "$id => $namen"; }
-- 更多参见:Perl 精萃 -- 声 明:转载请注明出处 -- Last Updated on 2012-06-29 -- Written by ShangBo on 2012-06-29 -- End (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |