use strict; use warnings; if('test' eq 0){ print "in if" } else { print "in else" } if(!'test') { print "again in if" } else { print "again in else" } __END__ prints: in else again in else

All strings in perl are evaluated to true (even the string 'false'!) except this: '0'

if('0' eq 0) { print "in if" } else { print "in else" } __END__ prints: in if

the problem here is that you are trying to mix a boolean and a number, this is a logical operation, the same as if(TRUE is FALSE)... not numerical as in if (2*4 == 8), you are trying to say: if (TRUE == 8)

If you really want to specify that 'this_chain' == zero (the number) and force a numeric comparison you need to comment and deactivate use warnings, (but this is nonsense, use a variable name instead)

Updated: if ($var == 0) is not a problem for warnings, of course


In reply to Re: Why is this evaluating to true? by pvaldes
in thread Why is this evaluating to true? by pmarcoen

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.