Use of uninitialized value in pattern match (m//) at .... #### my $_name = param('name'); my ($name) = $_name =~ /^([[:alpha:]]+)$/ if defined $_name; my $_color = param('color'); my ($color) = $_color =~ /^([[:alpha:]]+)$/ if defined $_color; my $_otherReqParam = param('otherReqParam'); my ($otherReqParam) = $_otherReqParam =~ /^([[:alpha:]]+)$/ if defined $_otherReqParam; # ... and so on for all the other params, and then print 'location: http:/www.somesite.com/error.htm', $/, $/ unless defined $name and defined $color and defined $otherReqParameter; .... #### my ($name) = (param('name') ||'') =~ /^([[:alpha:][:punct:][:space:]]+)$/; my ($color) = (param('color') ||'') =~ /^([[:alpha:]]+)$/; my ($otherReqParam) = (param('otherReqParam')||'') =~ /^([[:alpha:]]+)$/; #deal with all other params in a similar fashion. print 'location: http:/www.somesite.com/error.htm', $/, $/ unless defined $name and defined $color and defined $otherReqParam; # If we got here we have everything we need, untainted. ...