$| is the special variable that controls Perl's output buffer flushing. A FALSE value results in normal buffering. A TRUE value sets the buffer to 'autoflush'. Without it, sometimes an output buffer won't get flushed until you've printed a "\n" to it. With it, the buffer gets flushed as soon as there's something in it to flush out.

This is an oversimplification, of course.

Unless you really need to autoflush output buffers, don't worry about this feature.

Of course the ++ just increments the special variable, which gives it a value of 1, which in Perl equates to TRUE.

See perlvar and perlop for further details.


In reply to Re: What the heck does $|++; do? by davido
in thread What the heck does $|++; do? by Anonymous Monk

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":