如何将两个数组映射到一个Perl哈希中?

时间:2018-09-10 00:08:01

标签: perl

我是perl的新手。我需要了解如何使用foreach循环将一个数组(作为键)映射到另一个数组(作为值)以产生哈希值:

@one = ("A", "B", "C");
@two = ("a", "b", "c");

我编写了以下代码,但在对哈希值进行切片时不起作用?

%hash;
foreach $i (one) {
  print $i, "=>" , $ii = shift @two, "\n"
}

1 个答案:

答案 0 :(得分:14)

假设评论中我的问题的答案是“是”,那么有两种方法。

给出:

my @one = qw/A B C/;
my @two = qw/1 2 3/;

使用哈希片:

my %hash;
@hash{@one} = @two;

使用CPAN的List::MoreUtils模块:

use List::MoreUtils qw/zip/;
my %hash = zip @one, @two;