I usually use state and check for the end of line continuation character - something like this (pseudocode):
my $line=''; while (<INPUT>) { # build line chomp; if (/^(.*)\\$/) { $line .= $1; #or maybe $line .= "$1 "; ??? next; } $line .= $_; # ... do line processing here ... if ($line =~ /^Data_Value/) { ... } elsif ($line =~ /^Data_Group/) { ... } elsif ($line =~ /^Data_Raw/) { ... } # reset state $line = ''; }
The advantage of this approach is that it keeps the mechanics of reading in the data separate from the logic of processing the data. In the processing section you can get as fancy as you need without worrying about how it relates to the file's method of handling continuation lines.
Best, beth
In reply to Re: Best way to read and process a text file with multiline records
by ELISHEVA
in thread Best way to read and process a text file with multiline records
by tsk1979
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |