my %matches = map {$_ => 1} 17, 83, 114, 205, 407; OUTER: while (my ($key, $value) = each %hash) { foreach my $num (split /::/ => $value) { if ($matches {$value}) { print "$key: $value\n"; last OUTER; } } }