my @DATA = ( [ qw( foo bar baz ) ], [ qw( foo1 bar1 baz1 ) ], . . . ); my $sql = q/ INSERT INTO table ( col1, col2, col3 ) VALUES ( ?, ?, ?) /; # $dbh is an existing DBI connection my $sth = $dbh->prepare($sql) or die . . . ; foreach my $row (@DATA) { $sth->execute( @{$row} ); } my $sth->finish;