The title is the entire question really. I just got to wondering why the execution order for some expressions, for example:
my $rv = func( $i, ++i, $i+2 );
are institutionally undefined? Is because defining the execution order is:
- too hard.
- would disable some potential compile time or runtime optimisation.
- It would have some syntactic or semantic knock-on effect that would be undesirable?
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco.
Rule 1 has a caveat! -- Who broke the cabal?