Welcome to the Monastery | |
PerlMonks |
Re: The delay of printing encountered using loopby Perlbotics (Archbishop) |
on Jun 25, 2012 at 21:54 UTC ( [id://978289]=note: print w/replies, xml ) | Need Help?? |
I seems that perl does not flush a printed string without seeing a NL character, is that the right interpretation of this peculiar behavior?Correct. It's the expected behaviour of STDOUT to operate in buffered mode. NL marks the end of the line and then the whole line is printed. Can this be considered as a bug then?Maybe not, with the weak excuse that it has been always working like that. Buffering has some performance advantages when giving bigger chunks of characters to the OS rather than calling some I/O function of the OS for each individual character. You can switch off buffering, setting $| to true.
STDERR is unbuffered by default, so this works too (but uses a different stream):
Here's the obligatory article: Suffering from Buffering
In Section
Seekers of Perl Wisdom
|
|