MOON
Server: Apache/2.2.31 (Unix) mod_ssl/2.2.31 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4
System: Linux csr818.wilogic.com 2.6.18-419.el5xen #1 SMP Fri Feb 24 22:50:37 UTC 2017 x86_64
User: digitals (531)
PHP: 5.4.45
Disabled: NONE
Upload Files
File: //usr/local/ssl/local/share/man/man3/Net::LDAP::Filter.3
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.20)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.el \{\
.    de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "Net::LDAP::Filter 3"
.TH Net::LDAP::Filter 3 "2013-01-26" "perl v5.8.8" "User Contributed Perl Documentation"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
Net::LDAP::Filter \- representation of LDAP filters
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\&  use Net::LDAP::Filter;
\&
\&  $filter = Net::LDAP::Filter\->new( $filter_str );
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
The \fBNet::LDAP::Filter\fR object lets you directly manipulate \s-1LDAP\s0
filters without worrying about the string representation and all the
associated escaping mechanisms.
.SH "CONSTRUCTOR"
.IX Header "CONSTRUCTOR"
.IP "new ( [ \s-1FILTER\s0 ] )" 4
.IX Item "new ( [ FILTER ] )"
Create a new object.
If \s-1FILTER\s0 is given, parse it.
.SH "METHODS"
.IX Header "METHODS"
.IP "parse ( \s-1FILTER\s0 )" 4
.IX Item "parse ( FILTER )"
Parse \s-1FILTER\s0, updating the object to represent it.
The next call to ber will return this filter encoded.
.IP "as_string" 4
.IX Item "as_string"
Return the filter in text form.
.IP "print ( [ \s-1FH\s0 ] )" 4
.IX Item "print ( [ FH ] )"
Print the text representation of the filter to \s-1FH\s0, or the currently
selected output handle if \s-1FH\s0 is not given.
.IP "negate ( )" 4
.IX Item "negate ( )"
Logically negate/invert the filter object so that it matches the opposite
set of entries as the original.
.Sp
Instead of simply negating the text form by surrounding it with the \fBnot\fR
operator, the negation is done by recursively applying \fIDe Morgan's law\fR.
.Sp
Here is an example:
.Sp
.Vb 1
\& (|(&(cn=A)(cn=B))(|(!(cn=C))(cn=D)))
.Ve
.Sp
gets negated to
.Sp
.Vb 1
\& (&(|(!(cn=A))(!(cn=B)))(&(cn=C)(!(cn=D))))
.Ve
.SH "FILTER SYNTAX"
.IX Header "FILTER SYNTAX"
Below is the syntax for a filter given in \s-1RFC\s0 4515
http://www.ietf.org/rfc/rfc4515.txt
.PP
.Vb 10
\& filter       = "(" filtercomp ")"
\& filtercomp   = and / or / not / item
\& and          = "&" filterlist
\& or           = "|" filterlist
\& not          = "!" filter
\& filterlist   = 1*filter
\& item         = simple / present / substring / extensible
\& simple       = attr filtertype value
\& filtertype   = equal / approx / greater / less
\& equal        = "="
\& approx       = "~="
\& greater      = ">="
\& less         = "<="
\& extensible   = attr [":dn"] [":" matchingrule] ":=" value
\&                / [":dn"] ":" matchingrule ":=" value
\& present      = attr "=*"
\& substring    = attr "=" [initial] any [final]
\& initial      = value
\& any          = "*" *(value "*")
\& final        = value
\& attr         = AttributeDescription from Section 4.1.4 of RFC 4511
\& matchingrule = MatchingRuleId from Section 4.1.8 of RFC 4511
\& value        = AttributeValue from Section 4.1.5 of RFC 4511
\&
\&
\& Special Character encodings
\& \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
\&    *               \e2a, \e*
\&    (               \e28, \e(
\&    )               \e29, \e)
\&    \e               \e5c, \e\e
\&    NUL             \e00
.Ve
.SH "SEE ALSO"
.IX Header "SEE ALSO"
Net::LDAP,
Other online documentation
.SH "ACKNOWLEDGEMENTS"
.IX Header "ACKNOWLEDGEMENTS"
This document is based on a document originally written by Russell Fulton
<r.fulton@auckland.ac.nz>.
.SH "AUTHOR"
.IX Header "AUTHOR"
Graham Barr <gbarr@pobox.com>
.PP
Please report any bugs, or post any suggestions, to the perl-ldap mailing list
<perl\-ldap@perl.org>.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1997\-2004 Graham Barr. All rights reserved. This program is
free software; you can redistribute it and/or modify it under the same
terms as Perl itself.