使用each,key,以及values来处理hash元素

ZDNet软件频道 时间:2004-02-23 作者:Builder.com |  我要评论()
本文关键词:
Perl的hash支持包括三个迭代器函数(iterator functions):each,key,以及values。这些函数贯穿在一个hash的操作中,并根据使用的函数返回合适的信息。
本文译自Builder.com,未经许可请勿转载

Perl的hash支持包括三个迭代器函数(iterator functions):each,key,以及values。这些函数贯穿在一个hash的操作中,并根据使用的函数返回合适的信息。

Each函数返回一个具有两个元素的列表,列表包含使用keyvalue,或者,在等级内容中,这一函数只返回key。当each为hash的末端时,它返回的是一个空的列表。

key函数返回一个列表,列表包含给定hash的所有关键词(keys)。这些关键词是以明显的随机顺序而返回。当key函数用于等级内容时,其返回的是hash中的元素个数。

Values函数返回的是给定hash的所有values的列表,列表元素实际上是数值的化名,所以,列表的任一更改都会改变hash的实际内容。

以下是这三个迭代器函数的使用范例:

# 改变hash元素的values
for (values %prices)
{
       $_ *= 1.10; # 以10%提高每一价格
}

#以关键的value分类一个hash (默认环境的 hash)
for $key (sort keys %ENV)
{
       print "$key $ENV ";
}

# 获得hash的所有元素
while (($key, $value) = each %hash)
{
       print "$key => $value ";
}

由于keyvalues函数返回的是一个列表,当hash与数据库关联时,它们有可能返回庞大的列表。在这样的情况下,each函数是一个更好的选择,因为它在某一时刻只能返回一个key/value对。



责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134