use strict; use Data::Dumper; my %fruits=(); my @arr = ([1,1],[1,2],[3,5],[6,7]); for (0..$#arr) { $fruits{$_} = $arr[$_] } print Dumper(\%fruits); __END__ STDOUT: $VAR1 = { '1' => [ 1, 2 ], '3' => [ 6, 7 ], '0' => [ 1, 1 ], '2' => [ 3, 5 ] }; #### ... for (0..$#arr) { $fruits{$arr[$_]->[0]} = $arr[$_]->[1] } ... # thus: $VAR1 = { '6' => 7, '1' => 2, '3' => 5 }; #### ... for (0..$#arr) { $fruits{$arr[$_]->[0]} = [@{$arr[$_]}[1..@{$arr[$_]}-1]] } ...