my $query = "SELECT " . join(",", map { "?" } @q_return) . " FROM rma_list WHERE (" . join(",", map { "?" } (keys %q_search)) . ") = (" . join(",", map { "?" } @q_names) . ")"; my $sth = $dbh->prepare($query) or die "Couldn't prepare query: " . $dbh->errstr; $sth->execute(@q_return, (keys %q_search), @q_names) or die "Could not perform query: " . $sth->errstr;