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

Tem*_*jin 8 arrays perl hash

在Perl中,如何从数组中生成哈希@A@B具有相同数量的元素?目标是让每个价值@A成为价值的关键@B.产生的散列%C将使得可以从@B提供密钥中唯一地标识元素@A.

new*_*cct 23

它很简单

my %c;
@c{@a} = @b;
Run Code Online (Sandbox Code Playgroud)

  • 你可能正在读错书._Learning Perl_在切片部分显示了这一点.:) (3认同)

cod*_*lic 8

use List::MoreUtils 'mesh';
my %c = mesh @a, @b;
Run Code Online (Sandbox Code Playgroud)

这是它在内部制作的方式(如果您确定相同数量的元素):

my %c = map { $a[$_] => $b[$_] } 0 .. $#a;
Run Code Online (Sandbox Code Playgroud)