{
my @FIELDS = qw( field1 field2 field3 );
sub run_insert
{
my $dbh = shift || return;
my ($field1, $field2, $field3) = @_;
my $sql = q/
INSERT
( / .
join(',' @FIELDS) .
q/)
INTO some_table
VALUES
( *** PLACEHOLDERS HERE ***)
/;
my $sth = $dbh->prepare($sql);
$sth->execute($field1, $field2, $field3);
$sth->finish;
}
}
####
$BEGINING_SQL .
join(',', map('?', @FIELDS)) .
$ENDING_SQL;
####
$BEGINING_SQL .
join(',', '?' x @FIELDS) .
$ENDING_SQL;
####
#!/usr/bin/perl
use strict;
use warnings;
use Benchmark qw( cmpthese );
my $count = shift || 100000;
my @test_array = (0 .. 99);
sub map_bench
{
my @array = map { '?' } @test_array;
}
sub x_bench
{
my @array = '?' x @test_array;
}
cmpthese($count, {
map => \&map_bench,
x => \&x_bench,
});
__OUTPUT__
Benchmark: timing 100000 iterations of map, x...
map: 76 wallclock secs (76.75 usr + 0.00 sys = 76.75 CPU) @ 1302.93/s (n=100000)
x: 1 wallclock secs ( 1.91 usr + 0.00 sys = 1.91 CPU) @ 52356.02/s (n=100000)
Rate map x
map 1303/s -- -98%
x 52356/s 3918% --