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

Popular posts from this blog

objective c - Change font of selected text in UITextView -

php - Accessing POST data in Facebook cavas app -

c# - Getting control value when switching a view as part of a multiview -