If you check out the q_marks sub, you'll see that I'm inserting the proper amount of place holders for each data line. the $dbh->trace is confirming that the sub is working correctly. I'm not including column names in the insert statement because each data line has the proper amount of fields for each table I'm inserting into. I know this because the data files are direct dumps from a previous dbase.