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:
and use $build only if it's not null.my $build; if ($vadata =~ /=(\d+)\s*$/) { $build = $1; }
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..
In reply to Re^2: Use of uninitialized value when using regex
by Erez
in thread Use of uninitialized value when using regex
by PerlScholar
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |