my @field = qw( Title Email City State Country URL Date Description rid dt_create publish ); my $insert_sth = $dbh->prepare( 'INSERT INTO ads_2004 (' . join(', ', map "'$_'", @fields) . ') VALUES (?,?,?,?,?,?,?,?,NULL, NOW(), 0)' ); #### use CGI qw(:standard); my %field; for (@field) { my $param = param($_); die unless $param; # do validation on $param here ... $field{$_} = $param; } # or validate specific pieces outside the loop: die unless $field{rid} =~ /^\d+$/; die unless is_valid_email($field{Email}); $insert_sth->execute(values %field);