Class::MOP::Overload - Overload Meta Object
version 2.2203
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";
}
This class provides meta information for overloading in classes and roles.
"Class::MOP::Overload" is a subclass of Class::MOP::Object.
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.
Returns the operator for this overload object.
Returns the method name that implements overloading, if it has one.
Returns true if the object has a method name.
Returns the Class::MOP::Method that implements overloading, if it has one.
Returns true if the object has a method.
Returns the coderef that implements overloading, if it has one.
Returns true if the object has a coderef.
Returns the package for the coderef that implements overloading, if it has one.
Returns true if the object has a coderef package.
Returns the sub name for the coderef that implements overloading, if it has one.
Returns true if the object has a coderef name.
Returns true if the overloading is implemented by an anonymous coderef.
Returns the Class::MOP::Module (class or role) that is associated with the
overload object.
Clones the overloading object, setting "original_overload" in the
process.
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.
- •
- Stevan Little <[email protected]>
- •
- Dave Rolsky <[email protected]>
- •
- Jesse Luehrs <[email protected]>
- •
- Shawn M Moore <[email protected]>
- •
- יובל
קוג'מן (Yuval Kogman)
<[email protected]>
- •
- Karen Etheridge <[email protected]>
- •
- Florian Ragwitz <[email protected]>
- •
- Hans Dieter Pearcey <[email protected]>
- •
- Chris Prather <[email protected]>
- •
- Matt S Trout <[email protected]>
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.