in reply to Pattern Matching With Regular Expressions
You have a few options:
I don't know if it matters to you which order you get your matches, nor if the files are small enough, so I'm not sure which option would be better in this case.
Update: You might also want to reformat your code to make it easier to see where each block ends. Running your code through perltidy produces the following:
sub findtext { @filenumbers = @_; foreach $number (@filenumbers) { push @filenumbers2, split(/\W/, $number); } foreach $number (@numbers2) { chomp $number; if (defined $number) { open(FILE, "/home/jroberts/$number.txt") or die "$!"; foreach $term (@inputs) { while (<FILE>) if (/\b($term)\b/i) { push @before, split(' ', $`); @before = reverse(@before); @before = splice(@before, 0, 7); @before = reverse(@before); push @after, split(' ', $'); @after = splice(@after, 0, 7); if (exists $results{$number}) { $existing = $results{$number}; $results{$number} = $existing . "... @before" . "<b>$&</b>" . "@after ..."; } else { $results{$number} = "... @before" . "<b>$&</b>" . "@after "; } @before = undef; @after = undef; next; } else { print "No Match\n"; next; } } print "Match found in $number.txt\n"; @fulltext = $results{$number}; print "@fulltext\n"; close(FILE); } else { next; } next; } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Pattern Matching With Regular Expressions
by Anonymous Monk on Apr 13, 2004 at 03:47 UTC | |
by Thelonius (Priest) on Apr 13, 2004 at 04:16 UTC | |
by graff (Chancellor) on Apr 13, 2004 at 04:13 UTC |