sub validate($$){ my($self,$name) = @_; if(! defined($self->{params}->{$name}) ){ return $self->setError("'$name' was not given."); } my $value = $self->{params}->{$name} || $self->{params}->{retvals}->{$name}; my $field = $self->getField($name); my $allowed = $field->{allowed}; my $comment = $field->{comment}; my $escape = $field->{escape} || "yes"; if($value =~ /^$allowed$/){ return (($escape eq "no") ? $value : quotemeta($value)); }elsif(! $allowed){ return $self->setError("No constraints defined for '$name'"); }else{ return $self->setError("Forbidden characters in $name: '". quotemeta($value)."' ". ($comment ? "($comment)" : "")); } }