while (scalar(@names)) { print "?"; my $sql=$base_sql.($#names?'in ('.join(',',map('?',@names)).')':'=?'); my $sth=$dbh->prepare($sql); my $rv=$sth->execute(@names); my ($res,$status) = $sth->fetchall_arrayref(); @names=map($res->[$_][0],0..$#$res); push @ref, join '|',@names if (scalar(@names)); } #### while (scalar(@names)) { $b = @ref; if($b < 2) { print "?"; my $sql=$base_sql.($#names?'in ('.join(',',map('?',@names)).')':'=?'); my $sth=$dbh->prepare($sql); my $rv=$sth->execute(@names); my ($res,$status) = $sth->fetchall_arrayref(); @names=map($res->[$_][0],0..$#$res); push @ref, join '|',@names if (scalar(@names)); } }