The following code should do what you want. Essentially, it's a finite state machine.
Hope this helps, -gjb-
use strict; use warnings; my $currentPos; my $processing = 0; while (<DATA>) { chomp($_); if ($_ eq q(START OF RECORD)) { $currentPos = tell(DATA); } elsif (/INFORMATION I AM LOOKING FOR/ && !$processing) { seek(DATA, $currentPos, 0); $processing = 1; } elsif ($_ eq q(END OF RECORD)) { $processing = 0; } elsif ($processing) { print "$_\n"; } } __DATA__ START OF RECORD LINE 1 INFORMATION I AM NOT LOOKING FOR LINE 3 LINE 4 LINE 5 LINE 6 END OF RECORD START OF RECORD LINE 1 ok INFORMATION I AM LOOKING FOR LINE 3 ok LINE 4 ok LINE 5 ok LINE 6 ok END OF RECORD START OF RECORD LINE 1 LINE 2 LINE 3 LINE 4 INFORMATION I AM NOT LOOKING FOR LINE 6 END OF RECORD START OF RECORD LINE 1 ok LINE 2 ok LINE 3 ok LINE 4 ok INFORMATION I AM LOOKING FOR LINE 6 ok END OF RECORD
In reply to Re: Read forward and backward - need help
by gjb
in thread Read forward and backward - need help
by Limbic~Region
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |