use strict; use warnings; use Data::Dumper; my %hash = ( one => [ 1, 2, 4 ], two => [ 5, 7, 9 ] ); my @add = ( 7, 8, 15 ); $hash{one}->[$_] += $add[$_] foreach 0 .. $#add; print Dumper \%hash;