in reply to Problem matching a backslash in a regular expression

Yes you are absolutely right, I am reading it line by line. How do I append the line, I am able to identify \ and \n. Thanks
  • Comment on Re: Problem matching a backslash in a regular expression

Replies are listed 'Best First'.
Re^2: Problem matching a backslash in a regular expression
by sauoq (Abbot) on Sep 17, 2005 at 03:35 UTC
    How do I append the line, I am able to identify \ and \n.

    The following is one way...

    while ($line = <>) { while ($line =~ s/\\\n//) { $line .= <>; } # ... do useful stuff with $line here ... }
    The outside loop reads a line. The inside loop 1) checks to see if it ends with backwhack-newline, 2) lops off the backwhack-newline, 3) appends the next line from the file, and 4) repeats.

    Note that steps 1 and 2 are both done in the while's conditional with the substitution. (If the substitution is successful, then the line did end with backwhack-newline and it was removed.)

    Caveats include the assumption that a newline is your command terminator and the backwhack escapes it by immediately preceding it (as if with a shell script, for instance) and also that you won't have to worry about other escaped characters. An example of the latter might be a line that ends with "\\\n", which will break this code if that should be interpreted as an escaped backwhack rather than an escaped newline.

    -sauoq
    "My two cents aren't worth a dime.";