use strict; use warnings; use Data::Dumper; my %totals; for (1 .. 10) { my @plus = (1, 2, 3); @totals{qw(a b c)} = map { $_ + shift @plus } @totals{qw(a b c)}; } print Dumper \%totals;