in reply to Text Extraction
Prints:use strict; use warnings; my $flag1 = 0; my $flag2 = 0; my @lines; while (<DATA>) { $flag2 = 1 if $flag1 and /A1/; $flag1 = 1 if /SUBSCRIBER/; push @lines, $_ if $flag1; if (/NATIONAL/) { print @lines if $flag2; $flag1 = 0; $flag2 = 0; @lines = (); } } __DATA__ foo bar SUBSCRIBER goo hoo nada NATIONAL SUBSCRIBER goo A1 NATIONAL junk junk junk
SUBSCRIBER goo A1 NATIONAL
Update: Ok, here's my solution with Range Operators:
use strict; use warnings; my $flag = 0; my @lines; while (<DATA>) { if (/SUBSCRIBER/ .. /NATIONAL/) { push @lines, $_; $flag = 1 if /A1/; if (/NATIONAL/) { print @lines if $flag; $flag = 0; @lines = (); } } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Text Extraction
by JonDepp (Novice) on Feb 08, 2010 at 19:16 UTC | |
|
Re^2: Text Extraction
by JonDepp (Novice) on Feb 05, 2010 at 16:44 UTC | |
by planetscape (Chancellor) on Feb 06, 2010 at 15:04 UTC |