{
    "content": [
        {
            "type": "text",
            "text": "# Net::LDAP::Filter (info)\n\n## NAME\n\nNet::LDAP::Filter - representation of LDAP filters\n\n## SYNOPSIS\n\nuse Net::LDAP::Filter;\n$filter = Net::LDAP::Filter->new( $filterstr );\n\n## DESCRIPTION\n\nThe Net::LDAP::Filter object lets you directly manipulate LDAP filters\nwithout worrying about the string representation and all the associated\nescaping mechanisms.\n\n## Sections\n\n- **Net::LDAP::Filter(3pm)User Contributed Perl DocumentatioNet::LDAP::Filter(3pm)**\n- **NAME**\n- **SYNOPSIS**\n- **DESCRIPTION**\n- **CONSTRUCTOR**\n- **METHODS**\n- **FILTER SYNTAX**\n- **SEE ALSO**\n- **ACKNOWLEDGEMENTS**\n- **AUTHOR**\n- **COPYRIGHT**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "Net::LDAP::Filter",
        "section": "",
        "mode": "info",
        "summary": "Net::LDAP::Filter - representation of LDAP filters",
        "synopsis": "use Net::LDAP::Filter;\n$filter = Net::LDAP::Filter->new( $filterstr );",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "Net::LDAP::Filter(3pm)User Contributed Perl DocumentatioNet::LDAP::Filter(3pm)",
                "lines": 1,
                "subsections": []
            },
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "CONSTRUCTOR",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "METHODS",
                "lines": 26,
                "subsections": []
            },
            {
                "name": "FILTER SYNTAX",
                "lines": 33,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "ACKNOWLEDGEMENTS",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "COPYRIGHT",
                "lines": 5,
                "subsections": []
            }
        ],
        "sections": {
            "Net::LDAP::Filter(3pm)User Contributed Perl DocumentatioNet::LDAP::Filter(3pm)": {
                "content": "",
                "subsections": []
            },
            "NAME": {
                "content": "Net::LDAP::Filter - representation of LDAP filters\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "use Net::LDAP::Filter;\n\n$filter = Net::LDAP::Filter->new( $filterstr );\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "The Net::LDAP::Filter object lets you directly manipulate LDAP filters\nwithout worrying about the string representation and all the associated\nescaping mechanisms.\n",
                "subsections": []
            },
            "CONSTRUCTOR": {
                "content": "new ( [ FILTER ] )\nCreate a new object.  If FILTER is given, parse it.\n",
                "subsections": []
            },
            "METHODS": {
                "content": "parse ( FILTER )\nParse FILTER, updating the object to represent it.\n\nasstring\nReturn the filter in text form.\n\nprint ( [ FH ] )\nPrint the text representation of the filter to FH, or the currently\nselected output handle if FH is not given.\n\nnegate ( )\nLogically negate/invert the filter object so that it matches the\nopposite set of entries as the original.\n\nInstead of simply negating the text form by surrounding it with the\nnot operator, the negation is done by recursively applying De\nMorgan's law.\n\nHere is an example:\n\n(|(&(cn=A)(cn=B))(|(!(cn=C))(cn=D)))\n\ngets negated to\n\n(&(|(!(cn=A))(!(cn=B)))(&(cn=C)(!(cn=D))))\n",
                "subsections": []
            },
            "FILTER SYNTAX": {
                "content": "Below is the syntax for a filter given in RFC 4515\nhttp://www.ietf.org/rfc/rfc4515.txt\n\nfilter       = \"(\" filtercomp \")\"\nfiltercomp   = and / or / not / item\nand          = \"&\" filterlist\nor           = \"|\" filterlist\nnot          = \"!\" filter\nfilterlist   = 1*filter\nitem         = simple / present / substring / extensible\nsimple       = attr filtertype value\nfiltertype   = equal / approx / greater / less\nequal        = \"=\"\napprox       = \"~=\"\ngreater      = \">=\"\nless         = \"<=\"\nextensible   = attr [\":dn\"] [\":\" matchingrule] \":=\" value\n/ [\":dn\"] \":\" matchingrule \":=\" value\npresent      = attr \"=*\"\nsubstring    = attr \"=\" [initial] any [final]\ninitial      = value\nany          = \"*\" *(value \"*\")\nfinal        = value\nattr         = AttributeDescription from Section 4.1.4 of RFC 4511\nmatchingrule = MatchingRuleId from Section 4.1.8 of RFC 4511\nvalue        = AttributeValue from Section 4.1.5 of RFC 4511\n\n*               \\2a, \\*\n(               \\28, \\(\n)               \\29, \\)\n\\               \\5c, \\\\\nNUL             \\00\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "Net::LDAP, Other online documentation\n",
                "subsections": []
            },
            "ACKNOWLEDGEMENTS": {
                "content": "This document is based on a document originally written by Russell\nFulton <r.fulton@auckland.ac.nz>.\n",
                "subsections": []
            },
            "AUTHOR": {
                "content": "Graham Barr <gbarr@pobox.com>\n\nPlease report any bugs, or post any suggestions, to the perl-ldap\nmailing list <perl-ldap@perl.org>.\n",
                "subsections": []
            },
            "COPYRIGHT": {
                "content": "Copyright (c) 1997-2004 Graham Barr. All rights reserved. This program\nis free software; you can redistribute it and/or modify it under the\nsame terms as Perl itself.\n\nperl v5.32.0                      2021-01-03            Net::LDAP::Filter(3pm)",
                "subsections": []
            }
        }
    }
}