> But the open STDOUT, qq(>$ARGV.ext); version does work when slurping the files with -p00, for example in the case of a global substitution.
-p00 irritates me, I suppose you mean the equivalent to -p -00 , which doesn't mean slurping the whole file, but reading by paragraph.
Slurping is bound to anything bigger -0400
C:\tmp\files>type x
1:onebla
2:onebla
3:onebla
1:twobla
2:twobla
3:twobla
1:threebla
2:threebla
3:threebla
C:\tmp\files>perl -n00 -E"say'>>';print;say'<<'" x
>>
1:onebla
2:onebla
3:onebla
<<
>>
1:twobla
2:twobla
3:twobla
<<
>>
1:threebla
2:threebla
3:threebla
<<
C:\tmp\files>perl -n0777 -E"say'>>';print;say'<<'" x
>>
1:onebla
2:onebla
3:onebla
1:twobla
2:twobla
3:twobla
1:threebla
2:threebla
3:threebla
<<
from perlrun
-0[octal/hexadecimal]
specifies the input record separator ( $/ ) as an octal or
hexadecimal number. If there are no digits, the null character is the
separator. Other switches may precede or follow the digits. For
example, if you have a version of find which can print filenames
terminated by the null character, you can say this:
- find . -name '*.orig' -print0 | perl -n0e unlink
The special value 00 will cause Perl to slurp files in paragraph mode.
Any value 0400 or above will cause Perl to slurp files whole, but by convention
the value 0777 is the one normally used for this purpose.
You can also specify the separator character using hexadecimal notation:
-0xHHH..., where the H are valid hexadecimal digits. Unlike
the octal form, this one may be used to specify any Unicode character, even
those beyond 0xFF. So if you really want a record separator of 0777,
specify it as -0x1FF. (This means that you cannot use the -x option
with a directory name that consists of hexadecimal digits, or else Perl
will think you have specified a hex number to -0.)
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.