sub get_pairs { my %invalids = (); my @valids = (); for $number (@_) { for $id (@{$contains{$number}}) { $invalids{$id} = 1; } } for ($id=0; $id < $#items; $id++) { push @valids, $items[$id]; } return @valids; } @all_matches = get_pairs(2,3,4)