如何从带有键的数组和带有值的另一个数组中创建Perl哈希?

时间:2010-02-21 17:23:08

标签: perl arrays hash

在Perl中,如何从具有相同数量元素的数组@A@B进行哈希?目标是将@A的每个值作为@B中值的关键。生成的哈希值%C可以唯一地标识来自@B的{​​{1}}提供密钥的元素。

4 个答案:

答案 0 :(得分:23)

就像

一样简单
my %c;
@c{@a} = @b;

答案 1 :(得分:8)

use List::MoreUtils 'mesh';
my %c = mesh @a, @b;

这就是内部制作方式(如果您确定元素数量相等):

my %c = map { $a[$_] => $b[$_] } 0 .. $#a;

答案 2 :(得分:2)

如果我理解正确的问题:

my %c;
$c{$a[$_]} = $b[$_] for (0 .. @a-1);

答案 3 :(得分:0)

A是键,B是散列C的值:

use strict;
use warnings;

my @a = 1 .. 3;
my @b = 4 .. 6;
my %c;
for (0 .. $#a) {
    $c{$a[$_]} = $b[$_]
}

请记住,A数组中不得有任何重复值。