use warnings; use strict; my($buf, $bufq); sub peekline { $bufq or $buf = ; $bufq = 1; $buf; } sub getline { $bufq or $buf = ; $bufq = (); $buf; } while (defined($_ = getline)) { while (defined(peekline) and peekline =~ /^\s/) { $_ .= getline; } print "read one record: \n(($_))\n"; }