my $sql = sprintf "insert into mytable (%s) values (%s)", join(",", @columns), join(",", map {'?'} @values); # couple different ways to do this part $dbh->do($sql, {}, @values);