array – 在Perl中,如何创建一个哈希值,它的键来自一个给定的数组?

让我们说,我有一个数组,我知道我要做很多“数组包含X?检查。执行此操作的有效方法是将该数组转换为哈希,其中键是数组的元素,然后您可以说

if($hash{X}) { ... }

有一个简单的方法来做这个数组到哈希转换?理想情况下,它应该是足够灵活的,以获取一个匿名数组和返回一个匿名哈希。

%hash = map { $_ => 1 } @array;

它不如“@hash {@array} = …”解决方案那么短,但是那些需要散列和数组已经在其他地方定义,而这可以采用匿名数组并返回匿名散列。

这是做数组中的每个元素,并将其与“1”配对。当(密钥,1,密钥,1,密钥1)对的这个列表被分配给散列时,奇数编号成为散列的密钥,并且偶数编号成为相应的值。

http://stackoverflow.com/questions/95820/in-perl-how-do-i-create-a-hash-whose-keys-come-from-a-given-array

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:array – 在Perl中,如何创建一个哈希值,它的键来自一个给定的数组?