in reply to Puzzling $| behavior

Just for fun, try this:
$x=0; printf "%d %d %d\n",$x--,$x--,$x--;
Then try the same code (syntax adjusted) in any other language that supprts printf, like C. You will get different answers depending on the implementation. Some compilers give gifferent results depending on optimisation switches (Visual Studio, not gcc).
A good reason not to nest ++ or -- in other statements?

Replies are listed 'Best First'.
Re^2: Puzzling $| behavior
by ikegami (Patriarch) on Oct 08, 2007 at 07:37 UTC

    The OP's problem is not (just) due to the order in which the operands are executed (left to right). Try

    $x=0; printf "%d %d %d\n",$x,$x--,$x;

    Note that even though Perl executed the four operand from left to right, the result is -1 -1 -1.