* Bart Lateur <[EMAIL PROTECTED]> [2002-11-25 09:10]:
> It is because it comes into the realm of undefined
> behaviour. What it does is execution-order dependent, in
> the least.

Ah, but in Perl, this order is defined. The following is
guaranteed to work:

select((select(FH), $|++)[0]);

If the order were not specified, it couldn't.

>       my($x, $y, $z) = ($i++, $i++, $i++);

This has extra side effects besides the explicit effects,
that's why it doesn't work out well. You need to be aware of
more than the (explicitly specified) order of execution for
the explicit effects in order to predict its outcome.

> If you *need*, to modify the argument list, I'd first
> think of the three separate shift statements, but more
> likely, as Bernie Cosell suggested, I'd use the splice.

Obviously, dito. :-)

-- 
Regards,
Aristotle

Reply via email to