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
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |