EXPR1 ||= EXPR2 is sort of a super charged EXPR1 = EXPR1 || EXPR2. However, if EXPR1 is an array (say @a), it would expand to: @a = @a || EXPR2. Nothing wrong with the latter, but the two @a's are quite different. The one on the left hand side is an lvalue in list context, the one on right hand side of the assignment is in scalar context. However, EXPR1 ||= EXPR2 isn't syntactic sugar for EXPR1 = EXPR1 || EXPR2, because in the latter, EXPR1 is executed twice, in the former, just once. But if EXPR1 in EXPR1 ||= EXPR2 is only going to be executed once, what should it be? The scalar value, or the list value? Both are needed.

Abigail


In reply to Re: Precendence and wantarray puzzling me by Abigail-II
in thread Precendence and wantarray puzzling me by ViceRaid

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.