use strict; use CGI; my $query=CGI->new(); my %laundry= ( 'name' => '(\w+)', 'number' => '(\d+)', 'choice' => ([ABC]), ); my %laundered_params; foreach my $param (keys %laundry) { die "Parameter $param not present\n" unless my $input=$cgi->param($param); my $regexp=$laundry{$param}; $input =~ /$regexp/; die "Invalid input for $param\n" unless $laundered_params{$param}=$1; }