my @columns = qw(username password first last email phone address city state zip country s_address s_city s_state s_zip s_country intrests); # There are more elegant ways to build this, but this is # a step-by-step way : my $sql_columns = "id"; my $sql_values = "''"; foreach @columns { $sql_columns .= ", $_"; # Add the column name $sql_values .= ", ?"; # And add a parameter to the query }; $sth = $dbh->prepare( "INSERT INTO users($sql_columns) VALUES ($sql_values)"); # Now extract each CGI parameter, and store the values in @formvalues my @formvalues = map { param( $_ ) } @columns; $sth->execute(@formvalues);