my $colnum = 21; my $sql_placeholders = '(?' . ',?' x $colnum . ')'; my $sql_insert_handle = $dbh->prepare_cached( 'INSERT INTO mytable ' . $sql_placeholders . ' VALUES ' . $sql_placeholders ); <...> # yada yada yada # generate comma-separated column names and values <...> $sql_insert_handle->execute($columns,$values); #### DBD::Pg::st execute failed: called with 2 bind variables when 44 are needed at C:/Users/user/eclipse-workspace/project1/pgdb.pl line 134. at C:/Users/user/eclipse-workspace/project1/pgdb.pl line 134. main::ingest_file(undef) called at C:/user/user/eclipse-workspace/project1/pgdb.pl line 76