-- Andreas Puerzer <[EMAIL PROTECTED]> wrote: > Tom Phoenix schrieb: > > On 10/18/06, Chris Share <[EMAIL PROTECTED]> > wrote: > > > >> I've got a question about $| = 1; > > > > .... > > > >> If I add $| = 1; at the top of the program this > fixes the problem and > >> the program runs as expected. > > > > > > Normally, output is buffered for efficiency; > instead of writing each > > byte at once, output is saved in a buffer. The > buffer is automatically > > flushed under various circumstances, such as > end-of-program, or when > > the buffer gets full. Setting $| to 1 flushes the > buffer after each > > print or printf statement, as you found, so it's > much like having no > > buffer at all. > > > > Usually the buffer is flushed whenever the program > stops to read > > input; your system seems to be an exception. > Perhaps your perl binary > > is misconfigured? Or maybe you have a non-Unix > system that does I/O > > differently than most. But what you describe isn't > quite the > > documented behavior. > > > > It's not the documented behavior when running from > the CLI, but the OP > wrote: > > Chris Share: > > Hi, > > > > I'm a C programmer teaching myself Perl. I'm > working on Windows XP using > > ActivePerl and Eclipse (EPIC). > > I've seen this with so many Editors (no, better: > IDE's), it's definitely > not a Perl issue, but, in this case, a Eclipse > issue. I havn't dug too > far into this, but each IDE (that I know of) that > offers to run perl > inside its own Console suffers from this problem: > there seems to be > another layer of buffering going on (Eclipse calls > this: 'Allocate > Console') that makes it necessary to autoflush. > > So, to the OP, if you want to take input from your > program when run > inside Eclipse, you will need to fiddle with $|, due > to that > extra-buffering-layer. If you run it outside > Eclipse, there shouldn't be > a need to do so.
Please review the online document for a clear explanation of $|. http://perl.plover.com/FAQs/Buffering.html __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>