Welcome to the Monastery, liorlew!

You have use strict; enabled, so that's fantastic (we always recommend that, along with use warnings;). The thing is, strict is signalling an error because, just like the error states, you haven't declared your variable $undefvar. Undefined means it hasn't been assigned to yet, undeclared means you haven't mentioned it at all, and perl doesn't allow this under strict.

One of the reasons it does this is to prevent typos when coding. It's likely that after you get used to strict and you get this error, you've probably mistyped a variable name. This is a lot better than letting the script blindly run along, producing weird errors possibly somewhere far away from where the problem really is.

This will fix it:

use strict; use warnings; my $newvar=0; my $undefvar; # we declare, but do not define if (defined $undefvar){ $newvar = $undefvar; } # $newvar still 0, because $undefvar has been declared, # but not defined with a value print "$newvar\n";

See strict.


In reply to Re: if defined not working by stevieb
in thread if defined not working by liorlew

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.