# I assume the database handler $dbh is already initialized my $sth = $dbh->prepare(" SELECT * FROM table WHERE field1 LIKE ? AND field2 LIKE ? AND field3 LIKE ? AND field4 LIKE ? AND field5 LIKE ? "); for ($field1, $field2, $field3, $field4, $field5) { $_ = "" unless defined $_; $_ .= "%"; } $dbh->execute($field1, $field2, $field3, $field4, $field5); # But please choose better names than $fieldX :-)