my $queries = ( "SELECT * FROM or_mod;" "SELECT * FROM or_mod WHERE upper(component) = upper(?)"; "SELECT * FROM or_mod WHERE upper(env) = upper(?)"; "SELECT * FROM or_mod WHERE upper(component) = upper(?) AND upper(env) = upper(?)"; ); my $sth; my @bind; if (defined($query{env}) &&(defined $query{component}) { $sth = $dbh->prepare($queries->[3]); $sth->execute($query{component}, $query{env}); } elsif ( defined ($query{env}) ) { $sth = $dbh->prepare($queries->[2]); $sth->execute($query{env}); } elsif ( defined ($query{component}) ) { $sth = $dbh->prepare($queries->[1]); $sth->execute($query{component}); } else { $sth = $dbh->prepare($queries->[0]); $sth->execute; }