note
imp
Is there a reason why you want to do this with a regex? It isn't really the right tool for the job.
<p>
I would probably just use [doc://grep] to get a list of the missing items.
<code>my @words = qw( foo bar );
while (my $line = <DATA>) {
chomp $line;
my @missing = grep {$line !~ $_} @words;
printf "line: %-10s; missing: %s\n", $line, join ',', @missing;
}
__DATA__
foo
bar
foo bar
</code>
Or use [mod://List::Util]'s first, which will abort the search once one is missing.
<code>use List::Util qw( first );
my @words = qw( foo bar );
while (my $line = <DATA>) {
chomp $line;
my $missing = first {$line !~ $_} @words;
printf "line: %-10s; missing: %s\n", $line, $missing;
}
__DATA__
foo
bar
foo bar
</code>
Note that this will only return the first missing item, and if you're searching for something like "0" then you should check whether $has_missing is defined.
624296
624296