in reply to What the heck does $|++; do?

$| 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.


Dave

Replies are listed 'Best First'.
Re^2: What the heck does $|++; do?
by PhilHibbs (Hermit) on Apr 13, 2004 at 17:25 UTC
    Of course the ++ just increments the special variable, which gives it a value of 1,
    It doesn't just increment it - these special variables have magical behaviour, as Abigail-II points out below.

    Oh, and I'd pronounce it "Scalar pipe plus plus" or "Scalar pipe increment". I might say "Dollar" instead of "Scalar" if I was talking to a Perl newbie.