in reply to Nested foreach problem
2) Since the "printing" loop doesn't check to see if the line has been printed before, you can print similar text over and over. If you want to avoid that, use a hash to ensure uniqueness of the lines being printed.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 = <FILE>) { 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; }
|
|---|