in reply to Question on parsing a text file.
A simple approach would be to do it on the fly, concatenating lines if possible, otherwise proceeding with working on them.
The approach I use most often is a tip i found from one of merlyn's posts - use a buffer:
use strict; use warnings; use autodie qw/open close/; ## buffer for holding current text; my $buffer = ''; open (my $fh, '/foo/bar.txt'); while(<$fh>) { ## clear trailing whitespace chomp; if (/\/$/) { ## use regex to see if line ends with a slash ## append to buffer $buffer .= $_; } else { ## it's a single line so just process process($buffer); ## sub elsewhere... ## reset $buffer = ''; } } close $fh;
NB: Not tested! Just example...
Update - This is merlyn's node - Re: Reading multiple lines?. Maybe not quite the same thing, but it inspired this response, or at least was the first place i came across this kind of control structure... He also remembered to check for the 'end of file'...
|
|---|