I realise that your example is just that, but it is a strange choice of example. More to the point, even with the extra parens, it is a somewhat dangerous one.

I can only assume that the idea is that you die unless your vars $a and $b (not great choices in themselves.. see perlfunc:sort) get set to "some values". Now, in the example, the values in question are constants, which is pretty unlikely to fail, but it is just an example.

So, making a guess as to the context in which you made your discovery, you probably had something like this

( ($a, $b) = ( $somevar, $someothervar ) ) || die '$somevar or $someot +hervar not set!'; ...

However, I wonder if you realise exactly what it is that you are testing with this construct?

Try and guess which of the following pairs of values being assigned will result in the warning being issued, then run the code.

#! perl -slw use strict; for( ['a', 'b'], [1, 2], [0, 1], ['a', 'b'], [undef, undef], [1, undef], [undef, 1], [ ] #Intentionally empty. ) { my($a,$b); (($a, $b) = ( $_->[0], $_->[1] )) || warn "I would die when \$a=$a and \$b=$b\n"; }

Did you try it? Were you right? Surprising isn't it:)

ps. I wonder how many of the others posters above will be surprised too?


Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller



In reply to Re: question about || operator and list context by BrowserUk
in thread question about || operator and list context by markjugg

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.