use Data::Dumper; my @a1 = qw(ME K LE K HT ME LL); my @a2 = qw(10 4 1 5 6 7 19); my %h; $h{ $a1[$_] } += $a2[$_] for ( 0 .. $#a1 ); print Dumper( \%h ); __OUTPUT__ $VAR1 = { 'HT' => 6, 'ME' => 17, 'LE' => 1, 'K' => 9, 'LL' => 19 };