sub makeinsert{ die "no table" unless ($args{table}); my $table =$args{table}; die "no table" unless ($args{dbh}); my $dbh =$args{dbh}; die "no varlist" unless ($args{varlist}); my @vl=@{$args{varlist}}; my $repeat =$args{repeat}; $repeat=1 unless ($repeat); my @q=map{'?'} @vl; my $plist=' ('.join (',',@q).') '; my @aplist; for my $ii (1..$repeat) { push @aplist,$plist; } my $plistn=join (",\n",@aplist); my $sql='INSERT INTO '.$table.' ('.join (',',@vl).' ) values '.$plistn; my $handle=$dbh->prepare($sql); die "Couldn't prepare ".$table." insert; aborting" unless defined $handle ; return $handle; } my $sth2_1000=makeinsert(dbh =>$dbh2 ,table =>'table_name' ,repeat =>1000 ,varlist =>[qw/col_1 col_2 col_3 col_4 col_5/] );