while (my ($key, $value) = each %ids) { for my $item (@names) { next if $item !~ /$key/; push @groups, $item; last; } }