Gosh, this code is really messy, and the wrong indentation really does not help. And, above all, when you use operators having almost the same precedence, you should use parentheses to clarify your intent.

I simplified your code to this (in a one-liner type of execution):

$ perl -e 'our $cookingcounter = 350883; > our $garlicbreadheadstart = 600; > our $ovenempty = 0; > > my $holdtime = 0; > if ( > !$ovenempty > || $test > && $holdtime = 1) > ) { > die sprintf "Main Dish or Appetizer Cooking: %d, hold for %d", $ +cookingcounter, $holdtime; > }' Main Dish or Appetizer Cooking: 350883, hold for 0 at -e line 11.
As you can see, $holdtime is not assigned to 1. The important point is the precedence between || and &&. && has a higher precedence than ||. So that the preceding code can be interpreted as:
our $cookingcounter = 350883; our $garlicbreadheadstart = 600; our $ovenempty = 0; my $holdtime = 0; if ( !$ovenempty || ($test && $holdtime = 1) ) { die sprintf "Main Dish or Appetizer Cooking: %d, hold for %d", $co +okingcounter, $holdtime; }
In short, if !$ovenempty is true, none of the rest of the code is ever executed, because:

- !$ovenempty evaluates to true,

- and that's enough, we won't care about conditions grouped in a conditional having a lower priority.

So that the rest of the code is not even executed.

Je suis Charlie.

In reply to Re: Lazy conditional, skips assignment. by Laurent_R
in thread Lazy conditional, skips assignment. by cheako

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.