I was going to say Perl always evaluates operands in left to right order, but it's not the case.

It does, unless precedence or associativity gets in your way. Your example demonstrates this quite well:

var() = foo() + bar() * baz(); 6 1 2 3 7 5 4 Precedence tightest: * + loosest: =

So the arguments are evaluated left-to-right on the LHS of the =, then the sub expressions in order of their precedence, then the RHS. (perltrap documents that the RHS is evaluated first, btw).

Update: the more I think about this, the less sure I am. So try not rely too much on it ;-)

In short, you might be able to rely on the order in which operands are evaluated, but I consider it a bad practice

Fully agreed.

Second update

Ok, the operands are evaluated left-to-right, the operators according to their precedence/associativity.

The assignment operator is an exception (on which we rely quite often).


In reply to Re^2: Will "$_[0]=shift" always resolve shift first? by moritz
in thread Will "$_[0]=shift" always resolve shift first? by kyle

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.