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.";
|