{
    "content": [
        {
            "type": "text",
            "text": "# Class::MOP::Overload (perldoc)\n\n## NAME\n\nClass::MOP::Overload - Overload Meta Object\n\n## SYNOPSIS\n\nmy $meta     = Class->meta;\nmy $overload = $meta->getoverloadedoperator('+');\nif ( $overload->hasmethodname ) {\nprint 'Method for + is ', $overload->methodname, \"\\n\";\n}\nelse {\nprint 'Overloading for + is implemented by ',\n$overload->coderefname, \" sub\\n\";\n}\n\n## DESCRIPTION\n\nThis class provides meta information for overloading in classes and roles.\n\n## Sections\n\n- **NAME**\n- **VERSION**\n- **SYNOPSIS**\n- **DESCRIPTION**\n- **INHERITANCE**\n- **METHODS**\n- **AUTHORS**\n- **COPYRIGHT AND LICENSE**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "Class::MOP::Overload",
        "section": "",
        "mode": "perldoc",
        "summary": "Class::MOP::Overload - Overload Meta Object",
        "synopsis": "my $meta     = Class->meta;\nmy $overload = $meta->getoverloadedoperator('+');\nif ( $overload->hasmethodname ) {\nprint 'Method for + is ', $overload->methodname, \"\\n\";\n}\nelse {\nprint 'Overloading for + is implemented by ',\n$overload->coderefname, \" sub\\n\";\n}",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "VERSION",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 11,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "INHERITANCE",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "METHODS",
                "lines": 93,
                "subsections": []
            },
            {
                "name": "AUTHORS",
                "lines": 20,
                "subsections": []
            },
            {
                "name": "COPYRIGHT AND LICENSE",
                "lines": 5,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "Class::MOP::Overload - Overload Meta Object\n",
                "subsections": []
            },
            "VERSION": {
                "content": "version 2.2200\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "my $meta     = Class->meta;\nmy $overload = $meta->getoverloadedoperator('+');\n\nif ( $overload->hasmethodname ) {\nprint 'Method for + is ', $overload->methodname, \"\\n\";\n}\nelse {\nprint 'Overloading for + is implemented by ',\n$overload->coderefname, \" sub\\n\";\n}\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "This class provides meta information for overloading in classes and roles.\n",
                "subsections": []
            },
            "INHERITANCE": {
                "content": "\"Class::MOP::Overload\" is a subclass of Class::MOP::Object.\n",
                "subsections": []
            },
            "METHODS": {
                "content": "Class::MOP::Overload->new(%options)\nThis method creates a new \"Class::MOP::Overload\" object. It accepts a number of options:\n\n*   operator\n\nThis is a string that matches an operator known by the overload module, such as \"\" or \"+\".\nThis is required.\n\n*   methodname\n\nThe name of the method which implements the overloading. Note that this does not need to\nactually correspond to a real method, since it's okay to declare a not-yet-implemented\noverloading.\n\nEither this or the \"coderef\" option must be passed.\n\n*   method\n\nA Class::MOP::Method object for the method which implements the overloading.\n\nThis is optional.\n\n*   coderef\n\nA coderef which implements the overloading.\n\nEither this or the \"methodname\" option must be passed.\n\n*   coderefpackage\n\nThe package where the coderef was defined.\n\nThis is required if \"coderef\" is passed.\n\n*   coderefname\n\nThe name of the coderef. This can be \"ANON\".\n\nThis is required if \"coderef\" is passed.\n\n*   associatedmetaclass\n\nA Class::MOP::Module object for the associated class or role.\n\nThis is optional.\n\n$overload->operator\nReturns the operator for this overload object.\n\n$overload->methodname\nReturns the method name that implements overloading, if it has one.\n\n$overload->hasmethodname\nReturns true if the object has a method name.\n\n$overload->method\nReturns the Class::MOP::Method that implements overloading, if it has one.\n\n$overload->hasmethod\nReturns true if the object has a method.\n\n$overload->coderef\nReturns the coderef that implements overloading, if it has one.\n\n$overload->hascoderef\nReturns true if the object has a coderef.\n\n$overload->coderefpackage\nReturns the package for the coderef that implements overloading, if it has one.\n\n$overload->hascoderef\nReturns true if the object has a coderef package.\n\n$overload->coderefname\nReturns the sub name for the coderef that implements overloading, if it has one.\n\n$overload->hascoderefname\nReturns true if the object has a coderef name.\n\n$overload->isanonymous\nReturns true if the overloading is implemented by an anonymous coderef.\n\n$overload->associatedmetaclass\nReturns the Class::MOP::Module (class or role) that is associated with the overload object.\n\n$overload->clone\nClones the overloading object, setting \"originaloverload\" in the process.\n\n$overload->originaloverload\nFor cloned objects, this returns the Class::MOP::Overload object from which they were cloned.\nThis can be used to determine the source of an overloading in a class that came from a role, for\nexample.\n",
                "subsections": []
            },
            "AUTHORS": {
                "content": "*   Stevan Little <stevan@cpan.org>\n\n*   Dave Rolsky <autarch@urth.org>\n\n*   Jesse Luehrs <doy@cpan.org>\n\n*   Shawn M Moore <sartak@cpan.org>\n\n*   יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>\n\n*   Karen Etheridge <ether@cpan.org>\n\n*   Florian Ragwitz <rafl@debian.org>\n\n*   Hans Dieter Pearcey <hdp@cpan.org>\n\n*   Chris Prather <chris@prather.org>\n\n*   Matt S Trout <mstrout@cpan.org>\n",
                "subsections": []
            },
            "COPYRIGHT AND LICENSE": {
                "content": "This software is copyright (c) 2006 by Infinity Interactive, Inc.\n\nThis is free software; you can redistribute it and/or modify it under the same terms as the Perl\n5 programming language system itself.\n",
                "subsections": []
            }
        }
    }
}