while I have no doubt that this is basicaly correct, I'm not convinced that it's 100%

My understanding of the situation is that the regular expression operator iterates over the entire string before it moves on to the "implicit" print. This makes the order

  1. The "while(<>)" reads "one\n"
  2. The s substitutes the "\n" in "one\n" with a space followed by the next line in the file ("two\n"), so $_ now contains "one two\n".
  3. Substitution operator now carries on examining $_, finds \n at the end "one two\n" etc.
  4. The implicit "print" (from the -p option) prints $_.

If it did the print as step three, surely you would end up with

one two
three four

Update nuance hangs his head in shame :-( I really will have to learn to read posts properly, of course the original node mentions joining pairs of lines. Doh!

As you can all see, my understanding was wrong.

Nuance

Baldrick, you wouldn't see a subtle plan if it painted itself purple and danced naked on top of a harpsichord, singing "Subtle plans are here again!"


In reply to RE: Re: codeperl -pe 's/\n/ by nuance
in thread codeperl -pe 's/\n/" " . /e' data/code by princepawn

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.