On Sat, Apr 21, 2001 at 09:47:08AM -0700, Bill Becker wrote:
> What's the recommended way of flushing output?
>
> My goal is to display a status message on fairly long running task. A
> bytewise examination of a large-ish file consumes some CPU, I would
> like to do something like the spinning wheel, but with |/-\-|
>
> That would probably mean printing a char, then backspacing, yes?
What you want is to turn on autoflush for the appropriate filehandle.
perldoc perlvar:
autoflush HANDLE EXPR
$OUTPUT_AUTOFLUSH
$| If set to nonzero, forces a flush right away and
after every write or print on the currently
selected output channel. Default is 0 (regardless
of whether the channel is actually buffered by the
system or not; $| tells you only whether you've
asked Perl explicitly to flush after each write).
Note that STDOUT will typically be line buffered
if output is to the terminal and block buffered
otherwise. Setting this variable is useful
primarily when you are outputting to a pipe, such
as when you are running a Perl script under rsh
and want to see the output as it's happening.
This has no effect on input buffering. (Mnemonic:
when you want your pipes to be piping hot.)
Ronald