use strict; use warnings; use Data::Dumper; my @array = (1..10); for (my $i = 0; $i <= $#array; $i++) { splice(@array, $i, 1); } print Dumper(\@array); #### $VAR1 = [ 2, 4, 6, 8, 10 ]; #### use strict; use warnings; use Data::Dumper; my @players = ( { name => 'name1', deaths => 2, kills => 5, }, { name => 'name2', deaths => 2, kills => 5, }, { name => 'name3', deaths => 2, kills => 5, }, { name => 'name2', deaths => 1, kills => 4, }, ); my %merged; foreach my $player (@players) { if(exists($merged{$player->{name}})) { $merged{$player->{name}}->{deaths} += $player->{deaths}; $merged{$player->{name}}->{kills} += $player->{kills}; } else { $merged{$player->{name}}->{deaths} = $player->{deaths}; $merged{$player->{name}}->{kills} = $player->{kills}; } } print Dumper(\%merged); #### $VAR1 = { 'name2' => { 'deaths' => 3, 'kills' => 9 }, 'name1' => { 'deaths' => 2, 'kills' => 5 }, 'name3' => { 'deaths' => 2, 'kills' => 5 } };