foreach my $record (@filedata) { my @fields = split /,/, $record; my $placeholders = join ',', (('?') x @fields); my $sql = <<"END_SQL"; INSERT INTO $table VALUES ($placeholders) END_SQL my $sth = $dbh->prepare_cached($sql) || die "Could not prepare '$sql'\n"; $sth->execute(@fields) || die "Could not execute '$sql'\n"; $sth->finish; }