my @name_array = qw(fred joe john frank ); for my $file(@file) { open(FILE, "<", $file) or die("can't open file $file.\n"); while (my $line = ) { my $match = grep { $line =~ /$_/i } @name_array; print OUT $line if ( $match ); } } #### my %unique; if ( $have_a_line_to_print ) { $unique{$have_a_line_to_print} = 1; } # # much later # for( sort keys %unique ) { print; }