in reply to Searching Line by Line Multiple Times
you should just go with the standard idiom:open(SuitDoc,<STDIN>) || die "Cannot open file"; ... while ($line = <SuitDoc>) { ...
Apart from that, you've got your nesting the wrong way around. The outer loop should be over the lines that you read from your input stream, and the inner loop (applied to each line) should be over your patterns. But actually, you don't need an inner loop -- you can let the regex do most of the work:while (<>) { # read from file name(s) in @ARGV or from pipe ...
use strict; # get into this habit my $suits = 'hearts|clubs|spades|diamonds'; while (<>) { if ( /($suits)/ ) { print $1; } }
|
|---|