我是perl的新手.我需要了解如何将一个数组(作为键)映射到另一个数组(作为值)以使用foreach循环产生散列:
@one = ("A", "B", "C");
@two = ("a", "b", "c");
Run Code Online (Sandbox Code Playgroud)
我写了下面的代码但是当我切片哈希时它不起作用?
%hash;
foreach $i (one) {
print $i, "=>" , $ii = shift @two, "\n"
}
Run Code Online (Sandbox Code Playgroud)
Sha*_*awn 14
假设评论中我的问题的答案是"是",这里有几种方法.
鉴于:
my @one = qw/A B C/;
my @two = qw/1 2 3/;
Run Code Online (Sandbox Code Playgroud)
使用哈希切片:
my %hash;
@hash{@one} = @two;
Run Code Online (Sandbox Code Playgroud)
使用CPAN中的List :: MoreUtils模块:
use List::MoreUtils qw/zip/;
my %hash = zip @one, @two;
Run Code Online (Sandbox Code Playgroud)