Provided by: libmoose-perl_2.2009-1_amd64 bug

NAME

       Class::MOP::Overload - Overload Meta Object

VERSION

       version 2.2009

SYNOPSIS

           my $meta     = Class->meta;
           my $overload = $meta->get_overloaded_operator('+');

           if ( $overload->has_method_name ) {
               print 'Method for + is ', $overload->method_name, "\n";
           }
           else {
               print 'Overloading for + is implemented by ',
                   $overload->coderef_name, " sub\n";
           }

DESCRIPTION

       This class provides meta information for overloading in classes and roles.

INHERITANCE

       "Class::MOP::Overload" is a subclass of Class::MOP::Object.

METHODS

   Class::MOP::Overload->new(%options)
       This method creates a new "Class::MOP::Overload" object. It accepts a number of options:

       •   operator

           This is a string that matches an operator known by the overload module, such as "" or
           "+". This is required.

       •   method_name

           The name of the method which implements the overloading. Note that this does not need
           to actually correspond to a real method, since it's okay to declare a not-yet-
           implemented overloading.

           Either this or the "coderef" option must be passed.

       •   method

           A Class::MOP::Method object for the method which implements the overloading.

           This is optional.

       •   coderef

           A coderef which implements the overloading.

           Either this or the "method_name" option must be passed.

       •   coderef_package

           The package where the coderef was defined.

           This is required if "coderef" is passed.

       •   coderef_name

           The name of the coderef. This can be "__ANON__".

           This is required if "coderef" is passed.

       •   associated_metaclass

           A Class::MOP::Module object for the associated class or role.

           This is optional.

   $overload->operator
       Returns the operator for this overload object.

   $overload->method_name
       Returns the method name that implements overloading, if it has one.

   $overload->has_method_name
       Returns true if the object has a method name.

   $overload->method
       Returns the Class::MOP::Method that implements overloading, if it has one.

   $overload->has_method
       Returns true if the object has a method.

   $overload->coderef
       Returns the coderef that implements overloading, if it has one.

   $overload->has_coderef
       Returns true if the object has a coderef.

   $overload->coderef_package
       Returns the package for the coderef that implements overloading, if it has one.

   $overload->has_coderef
       Returns true if the object has a coderef package.

   $overload->coderef_name
       Returns the sub name for the coderef that implements overloading, if it has one.

   $overload->has_coderef_name
       Returns true if the object has a coderef name.

   $overload->is_anonymous
       Returns true if the overloading is implemented by an anonymous coderef.

   $overload->associated_metaclass
       Returns the Class::MOP::Module (class or role) that is associated with the overload
       object.

   $overload->clone
       Clones the overloading object, setting "original_overload" in the process.

   $overload->original_overload
       For cloned objects, this returns the Class::MOP::Overload object from which they were
       cloned. This can be used to determine the source of an overloading in a class that came
       from a role, for example.

AUTHORS

       •   Stevan Little <stevan.little@iinteractive.com>

       •   Dave Rolsky <autarch@urth.org>

       •   Jesse Luehrs <doy@tozt.net>

       •   Shawn M Moore <code@sartak.org>

       •   יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>

       •   Karen Etheridge <ether@cpan.org>

       •   Florian Ragwitz <rafl@debian.org>

       •   Hans Dieter Pearcey <hdp@weftsoar.net>

       •   Chris Prather <chris@prather.org>

       •   Matt S Trout <mst@shadowcat.co.uk>

COPYRIGHT AND LICENSE

       This software is copyright (c) 2006 by Infinity Interactive, Inc.

       This is free software; you can redistribute it and/or modify it under the same terms as
       the Perl 5 programming language system itself.