foreach (@{$parameters->{$_}}) { if($_ ne "" && $_ !~ /^all/i) { $query_field = $_; # Remove unnecessary spaces. $_ =~ s/\s{2,}/ /g; $_ =~ s/^\s+//g; $_ =~ s/\s+$//g; @space_split_array = split / /, $_; foreach (@space_split_array) { if ($_ =~ /^\d+$/ && scalar(@space_split_array) == 1 && $_ eq $query_field) { $where_clause .= "($real_field_name = $_) OR "; } else { $where_clause .= "($real_field_name LIKE '%$_%') AND "; } } $where_clause =~ s/AND $/OR /; } }