我是perl的新手。我需要了解如何使用foreach循环将一个数组(作为键)映射到另一个数组(作为值)以产生哈希值:
@one = ("A", "B", "C");
@two = ("a", "b", "c");
我编写了以下代码,但在对哈希值进行切片时不起作用?
%hash;
foreach $i (one) {
print $i, "=>" , $ii = shift @two, "\n"
}
答案 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;