$ perl -e ' use strict; use warnings; # Somewhere earlier in your code, something like this: # my $dbh = DBI->connect( # $data_source, $username, $auth, # {RaiseError => 1, ...} # ); my @valuesForIn = 1..5; my $query = qq{ SELECT field1 FROM table1 WHERE field2 IN (@{[join ",", qw{?} x @valuesForIn]}) }; print "my \$sth1 = \$dbh->prepare($query);\n"; print "\$sth1->execute(@valuesForIn);\n"; ' my $sth1 = $dbh->prepare( SELECT field1 FROM table1 WHERE field2 IN (?,?,?,?,?) ); $sth1->execute(1 2 3 4 5);