Class::MOP::Overload

NAME
VERSION
SYNOPSIS
DESCRIPTION
INHERITANCE
METHODS
AUTHORS
COPYRIGHT AND LICENSE


NAME

Class::MOP::Overload − Overload Meta Object

VERSION

version 2.2014

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, ” subn”;
}

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

Dave Rolsky

Jesse Luehrs

Shawn M Moore

×××× ×§××’×× (Yuval Kogman)

Karen Etheridge

Florian Ragwitz

Hans Dieter Pearcey

Chris Prather

Matt S Trout

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.