Perl complaining about uninitialized value in regex -
i have function below:
sub getminfromparam { ($param) = @_; print "pppp = $param\n"; $min; if ($param =~ /\s*\[(\s+),\s*(\s+)\]\s*/) { print "in here\n"; $min = $1; } elsif ($min =~ /((\w+),)+/) { @tmp = split (/\s*,\s*/, $param); if ($tmp[0] =~ /\[(\w+),\s?(\w+)\]/) { $min = $1; } else { $min = $tmp[0]; } } return ($min); }
when $param string like: 120u, 421u, 53, 19, 41u, 53, error: use of uninitialized value in pattern match (m//) @ line:
if ($param =~ /\s*\[(\s+),\s*(\s+)\]\s*/) {
why complaining uninitialized value when $param defined?
it's not. it's complaining line:
elsif ($min =~ /((\w+),)+/) {
at least here test data 120u, 421u, 53, 19, 41u, 53
which expected, since $min
set if $param
matches, elsif
runs if $param
doesn't match.
that line supposed elsif ($param =~ /((\w+),)+/) {
, in case don't warning.
Comments
Post a Comment