[Omaha.pm] Parsing a Text File
Chris St. Pierre
stpierre at NebrWesleyan.edu
Fri May 29 14:02:18 PDT 2009
On Fri, 29 May 2009, Andrew Embury wrote:
> Can anyone point me in the right direction on a good way to regex match a
> file and only output the lines that contain one of the patterns in the
> array? The text file is large, so iterating the file mutiple times is not a
> good solution for me.
If I understand your question correctly, you might try using
Regexp::Assemble. I.e., something like:
use Regexp::Assemble;
my $ra = Regexp::Assemble->new();
foreach (@regexps) {
$ra->add($_);
}
my $re = $ra->re;
open(my $FH, '<', "/path/to/file")
or die "Couldn't read from /path/to/file: $!";
while (<$FH>) {
/$re/ and print;
}
close($FH);
Untested, YMMV, use only as directed, etc. :)
Chris St. Pierre
Unix Systems Administrator
Nebraska Wesleyan University
More information about the Omaha-pm
mailing list