Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Re: The weirdest thing....

by former33t (Scribe)
on May 09, 2007 at 21:07 UTC ( #614492=note: print w/replies, xml ) Need Help??

in reply to The weirdest thing....

I'm guessing you need to flush STDOUT.


Replies are listed 'Best First'.
Re^2: The weirdest thing....
by Joost (Canon) on May 09, 2007 at 21:32 UTC
    I'm nitpicking here, but note that $|++ does not increment $| when it's 1. $| is always 1 (flush) or 0 (buffer).

    That means that:

    # INCORRECT sub something { $|++; # do something without buffering $|--; }
    Will turn on buffering even if it was off before calling the subroutine.

    Usually that's not really a problem, but if you need to revert autoflush to its previous setting, you have to remember its status yourself:

    #CORRECT sub something { my $flush = $|++; # do something without buffering $| = $flush; }
      #CORRECT sub something { local $| = 1; # do something with autoflushing }
      Yes, of course you are correct. It's probably even a smidgen faster to just assign a 1 to $| than it is to perform the computation involved in incrementing. I don't think I've ever run into a situation where I wanted autoflush on a filehandle sometimes and then go back to buffering, but I'll keep that in mind.

      I do like the use of setting the autoflush locally in your other post.

      I'm nitpicking here, but note that $|++ does not increment $| when it's 1. $| is always 1 (flush) or 0 (buffer).

      You can use =1 instead of ++ and you wouldn't have to explain this. Be nice to your reader and use =1.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://614492]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (3)
As of 2022-09-28 09:08 GMT
Find Nodes?
    Voting Booth?
    I prefer my indexes to start at:

    Results (124 votes). Check out past polls.