Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

The extremely simple buffering tutorial (really just an example)

by tphyahoo (Vicar)
on Jul 21, 2005 at 09:04 UTC ( #476757=perltutorial: print w/replies, xml ) Need Help??

Only for novice monks too lazy to read dominus's suffering from buffering:

from perlvar:

HANDLE->autoflush(EXPR) $OUTPUT_AUTOFLUSH # need to use English at the start of your module $| If set to nonzero, forces a flush right away and after every write + or print on the currently selected output channel. Default is 0 (reg +ardless of whether the channel is really buffered by the system or no +t; $| tells you only whether you've asked Perl explicitly to flush af +ter each write). STDOUT will typically be line buffered if output is +to the terminal and block buffered otherwise. Setting this variable i +s useful primarily when you are outputting to a pipe or socket, such +as when you are running a Perl program under rsh and want to see the +output as it's happening. This has no effect on input buffering. See +getc in the perlfunc manpage for that. (Mnemonic: when you want your +pipes to be piping hot.)
Some simple code:
#see also use strict; use warnings; #prints, waits a second, prints for (1..3) { sleep 1; print "$_\n"; } #without the newline, waits the entire time and then prints the whole +thing. for (1..3) { sleep 1; print "$_"; } $| = 1; #now it works for (1..3) { sleep 1; print "$_"; } #you might want to go back to the default behavior now. $| = 0;

Considered (dvergin): Author requests this be listed on Tutorials page. What say you all?
Unconsidered (holli): Enough Keep Votes (Keep/Edit/Delete: 20/21/1)