I have the feeling that you are using the wrong approach.
What about using an array of values and just one SQL statement with
placeholders?
my @values =
(
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ],
[ 'a', 'b', 'c' ]
);
my $sql = "Insert into tableone values(?, ?, ?);
my $loadHandle = $dbh->prepare($sql);
for (@values)
{
$loadHandle->execute(@$_)
or die "Could not execute SQL statement $sql "
. " with values ( @$_ )... $DBI::errstr\n ";
}
However, if what you want to do is execute different statements,
here's another way:
my @SQL_statements = (
"create table x(i int)",
"insert into x values (1)",
"update x set i = i * 10 "
);
$dbh->begin_work();
for (@SQL_statements)
{
eval { $dbh->do($_)};
if ($@)
{
$dbh->rollback();
die "error executing query '$_', $DBI::errstr\n";
}
}
$dbh->commit();