http://www.perlmonks.org?node_id=1057144


in reply to Iterator to parse multiline string with \\n terminator

while(<DATA>){s/[\\\n]//g; $line.=$_;} print $line; __DATA__ fist line\ second line\ third line\ fourth
no?

Replies are listed 'Best First'.
Re^2: Iterator to parse multiline string with \\n terminator
by Athanasius (Archbishop) on Oct 07, 2013 at 03:20 UTC

    Not quite. Putting \\\n into a character class causes every occurrence of either a backslash or a newline to be removed. This results in a file consisting of just a single line, which is not what is wanted. Remove the character class:

    #! perl use strict; use warnings; my $file = ''; while (<DATA>) { s{\\\n}{}; $file .= $_; } print $file; __DATA__ first line second line \ third line \ fourth line fifth line

    Output:

    13:10 >perl 738a_SoPW.pl first line second line third line fourth line fifth line 13:13 >

    Note that the substitution operates on each line of input in turn, and a single input line can contain no more than one backslash-newline sequence. So, the /g modifier is not needed.

    Hope that helps,

    Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

      my brackets was just a typo