my $fieldnames = join( ",", @map_fields ); my $parmstring = join( ",", ('?') x scalar @map_fields ); my $sth = $dbh->prepare( "INSERT INTO $some_tbl ($fieldnames) VALUES ($parmstring)" ); # loop over rows of data with the execute call: ... $sth->execute( @fields ); ...