Class::MOP::Overload (3)
Leading comments
Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) Standard preamble: ========================================================================
NAME
Class::MOP::Overload - Overload Meta ObjectVERSION
version 2.1807SYNOPSIS
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.