.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" 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" '' . ds C` . ds C' '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. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" 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 3pm" .TH Net::LDAP::Filter 3pm "2015-04-02" "perl v5.20.2" "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. .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 4515\s0 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 . .SH "AUTHOR" .IX Header "AUTHOR" Graham Barr .PP Please report any bugs, or post any suggestions, to the perl-ldap mailing list . .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.