my %players; while (my $player = make_next_player()) { if (exists $players{ $player->{name} } { # merge new player data with existing player } else { $players{ $player->{name} } = $player; } }