http://www.perlmonks.org?node_id=859847


in reply to Re: Use of uninitialized value when using regex
in thread Use of uninitialized value when using regex

the expression $var =~ /regex/ returns a true or false value, not the captured value. The special variable $1 contains the value you captured in the parentheses, so you should use something along the following lines:

my $build; if ($vadata =~ /=(\d+)\s*$/) { $build = $1; }
and use $build only if it's not null.

UPDATE: actually the OP was matching in list context, not scalar context, so a messed up answer. Please ignore and see above and below for a more enlightened discussion...

"Principle of Least Astonishment: Any language that doesn’t occasionally surprise the novice will pay for it by continually surprising the expert..