my $query = qq{INSERT INTO $table (column1, column2) VALUES }; my @values = (['a','b','c'], ['d','e','f'], ['g','h','i'] ); my $start=0; for (@values) { $query .= ',' if $start++; $query .= '(' . (join (",", map { $dbh->quote($_)} @$_)) .')'; } my $affected = $dbh->do($query);