On 27/9/06 5:21, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:

> Hello all,
> 
> I am writing a simple search script using Net::LDAP.  The problem that I
> am having is with the filter.
> 
> When I execute my script I get the following error message: "Bad filter at
> line 15".
> 
> The attribute that I am use a part of the filter is "employeetype" and the
> value is "consultant (pre-release)".  This is a legitimate value.

But it is not legitimate as-is in a search filter, because parentheses are
syntactically special in the string representations of these.

RFC 4515 says you need to replace ( in a filter value with \28 and ) with
\29. As you're writing a perl double-quoted string, you'll need to escape
those backslashes and thus you should end up writing:

    filter => "(employeetype=consultant \\28pre-release\\29)"

I think there's a note in the Net::LDAP::Filter docs about this escape
mechanism. If not, there should be.

Cheers,

Chris


Reply via email to