my $pat = shift; while (<>) { print if /$pat/; } #### my $pat = shift; while (<>) { print if /$pat/o; } #### my @pats = ('fo*', 'ba.', 'w+3'); while (<>) { foreach $pat (@pats) { print if /$pat/; } } #### my @pats = ('fo*', 'ba.', 'w+3'); my $pat = join('|', @pats); while (<>) { print if /$pat/o; } #### for my $line (@lines) { for my $pattern (keys(%patterns)) { if (my @params = ($line =~ $pattern)) { my $func = $patterns{$pattern}; if (defined($func)) { $func->(@params); } } } }