{
    "mode": "perldoc",
    "parameter": "Class::MOP::Overload",
    "section": "",
    "url": "https://www.chedong.com/phpMan.php/perldoc/Class%3A%3AMOP%3A%3AOverload/json",
    "generated": "2026-06-17T13:23:12Z",
    "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}",
    "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": []
        }
    },
    "summary": "Class::MOP::Overload - Overload Meta Object",
    "flags": [],
    "examples": [],
    "see_also": []
}