in reply to Match a list of numbers from a list of files
You should, as good practice, use strict; and use warnings;, along with explicit initializing variables - it's obviously not necessary but can save headaches. There are a number of so-called best practices you aren't following, but they are less essential (4-space indent, clear names for variables, ...). Is there a reason you hold off on parsing your @temp array 'till you've read in an entire block? From what I read, it seems like you could do the same thing with:
This also compares against an entire list of match values at once, which is likely desirable if you want to test against 5000 numbers.use strict; use warnings; my $transaction_flag = 0; my $match_flag = 0; my $count = 0; my @value_list = ('154216722'); my @transaction = (); while (my $line = <>) { if ($line =~ /\<BEGIN Transaction\>/){ $transaction_flag = 1; } if ($transaction_flag) { push @transaction, $line; for (@value_list) { if ($line =~ /$_/) { $match_flag = 1; $count++; } } } if ($line =~ /\<\/END Transaction\>/){ $transaction_flag = 0; if ($match_flag) { print @transaction; } $match_flag = 0; @transaction = (); } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Match a list of numbers from a list of files
by shawshankred (Sexton) on Dec 18, 2008 at 00:52 UTC |