This sound like a job for $/ the INPUT RECORD SEPARATOR. By default this is "\n" so we read one line at a time. If we set it to "\n\n" then we read in chunks of data until we find two newlines (ie one blank line). Thus:
{
local $/ = "\n\n";
while( my $record = <DATA> ) {
print "This is a record:\n", $record;
# do stuff with record
}
}
__DATA__
This is a record
This
is
a
multiline
record
This is just another
address book record
Remeber $/ is a global var so localise its effect of you may get some nasty suproses elsewhere in you code.
cheers
tachyon
s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print
|