I use the syntax $foo[$i][$j]; to represent an array of arrays as a two-dimensional array. Here the answer will not be map :
#! /usr/bin/env perl use 5.12.0; use warnings; use Data::Dumper; my @keys = qw(alpha beta gamma delta epsolon); my @values1 = qw(one two three four five); my @values2 = qw(uno dos tres quatro cinco); my @values3 = qw(abcde); my @values = ( \@values1, \@values2, \@values3 ); my %hash; for my $item ( (0..$#keys) ) { my @array; push @array, $values[0][$item], $values[1][$item], $values[2][$item]; $hash{$keys[$item]} = \@array; } say Dumper \%hash;
Here's the conclusion:
$VAR1 = { 'gamma' => [ 'three', 'tres', 'c' ], 'delta' => [ 'four', 'quatro', 'd' ], 'alpha' => [ 'one', 'uno', 'a' ], 'beta' => [ 'two', 'dos', 'b' ], 'epsolon' => [ 'five', 'cinco', 'e' ] };
It looks right. Of course, I never checked that the different arrays are the same size.
source share