I recommend the idiom $_ .= <>. For example, in this case this would be something like:

use warnings; use strict; while (<DATA>) { while (!/(?:[^;]*+;){2}/) { $_ .= <DATA>; } print "read one record: \n(($_))\n"; } __DATA__ The Road Ahead1;Completely Revised and Up-to-Date; 002564418 road ahead2; Americaa creeping revolution;00345678 The road ahead3;[Address made before the Regional Foreign Policy Conference; 004561963

You may need to modify the regular expression to whatever it is that you recognize a full record.

If the continuation lines are marked by the whitespace at the beginning of the next line (like in mail headers) not somehoe in the incomplete line (like in smtp commands), then you can't use this simple idiom. In this case, I recommend a one-line buffer, e.g.

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

In reply to Re: join two lines in a file? by ambrus
in thread join two lines in a file? by happyrainb

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.