http://qs1969.pair.com?node_id=311415


in reply to Using expressions in arrays for pattern matching

How about this? I know it's not fancy, but I did test it.
#!/usr/bin/perl # file : mike.pl use warnings; use strict; #search directory for files ending with .RPT and store the names in an + array my @files=glob("*.RPT"); my $i; my $x; my $readline; #open file containing expressions to search for open FILE, "params.txt" or die "Couldn't open the file. $!"; my @params=<FILE>; close FILE; # remember to close what you open #for each file in array open and search for string foreach $i (@files){ open INPUT, "$i" or die "Couldn't open the file. $!"; my $thisout = substr($i, 0, index($i, ".")) . ".txt"; # form the n +ame of the output .txt file open OUTPUT, ">$thisout"; while ($readline = <INPUT>){ # for each line in the input fi +le, foreach $x (@params) { # for each parameter in the list chomp($x); # get rid of any newline nonsense that migh +t be there if ($readline =~ m/$x/){ # if the param is in the line, prin +t the line. chomp($readline); print OUTPUT "$readline\n"; } } } close INPUT; # close what you open close OUTPUT; # close what you open }