利用Perl的哈希建立键-值数据映射

时间:2007-09-19 13:18:51  来源:开发者在线  作者:

列表 D

#!/usr/bin/perl

# (re)initialize hash
%alphabet = ();

插入、改变和删除哈希元素

你可以在一个哈希中插入一个新元素(或者更改一个现有的哈希),只需要给与之相对应的键设置一个新的数值就行了。如果这个键不存在,它将会被创建。下面是一个例子:

列表 E

#!/usr/bin/perl

# define hash
%alphabet = ('a', 'apple', 'b', 'ball', 'c', 'cat', 'x', 'xylophone');

# add new element
$alphabet = 'dog';

# change existing element
$alphabet = 'arrow';

# access hash value
print "A is for " . $alphabet;

你可以用delete()函数删除一对键—值对,就像下面这样:

列表 F

#!/usr/bin/perl

# define hash
%alphabet = ('a', 'apple', 'b', 'ball', 'c', 'cat', 'x', 'xylophone');

# delete element
delete $alphabet;

检索键和数值

如果你觉得一个哈希的键和数值有用,需要进一步处理,Perl允许将其提取到单独的数据结构中。你可以用函数keys()将一个哈希的键返回成为一个数字索引的数组。下面是一个例子:

列表 G

#!/bin/perl

# define hash
%alphabet = ('a' => 'apple', 'b' => 'bat', 'c' => 'cat');

# get and print hash keys
@keys = keys(%alphabet);
print "@keys ";

或者,你可以用函数values()获得一个具有哈希值的数组,如下:

列表H

#!/bin/perl

# define hash
%alphabet = ('a' => 'apple', 'b' => 'bat', 'c' => 'cat');

# get and print hash values
@vals = values(%alphabet);
print "@v ";

计算哈希的大小

计算哈希大小的最简单方法就是用上述的keys()函数,将哈希中的键提取到一个数组中,然后检索得到数组的大小,操作方法如下:

列表 I

#!/bin/perl

# define hash
%alphabet = ('a' => 'apple', 'b' => 'bat', 'c' => 'cat');

# print number of hash elements
print "The hash has " . scalar(keys(%alphabet)) . " elements ";

文章评论

共有 位CH网友发表了评论 查看完整内容