Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Why? uninitialized value in pattern match when using if (defined)

by SamCG (Hermit)
on Mar 22, 2006 at 00:08 UTC ( [id://538354] : note . print w/replies, xml ) Need Help??


in reply to Why? uninitialized value in pattern match when using if (defined)

Welcome to the monastery, Dervish!

As suggested, you should give a minimal piece of code that will compile and run and produce the issue you're having. In case you're not aware (though you've likely guessed), the message you're seeing is a non-fatal warning, which means you're invoking the script with -w or putting use warnings; at the top. This is usually (always?) a good thing to do.

What this particular warning is telling you is that you're attempting to use a regular expression against an undefined variable. Something like the following, for example, would produce a similar warning to what you're seeing.
use warnings;## good line to have. use strict; is also prudent $x=undef; ## I explicitly set it to undef here] ## even if I commented this, though, I'd have ## the same warning ($s)=$x=~m/regex/; ## $x is undefined, and produces warning print $s; ## presumably, I wanted $s for something
You should definitely look at the line number suggested by the warning.