---
name: "Class::MOP::Overload"
section: "3pm"
platform: "linux"
package: "perl-moose"
version: "2.4001-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Class::MOP::Overload"
---

# Class::MOP::Overload(3pm)

Overload Meta Object

## NAME

Class::MOP::Overload - Overload Meta Object

## VERSION

version 2.4001

## 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@cpan.org\>

- •

  Dave Rolsky \<autarch@urth.org\>

- •

  Jesse Luehrs \<doy@cpan.org\>

- •

  Shawn M Moore \<sartak@cpan.org\>

- •

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

- •

  Karen Etheridge \<ether@cpan.org\>

- •

  Florian Ragwitz \<rafl@debian.org\>

- •

  Hans Dieter Pearcey \<hdp@cpan.org\>

- •

  Chris Prather \<chris@prather.org\>

- •

  Matt S Trout \<mstrout@cpan.org\>

## 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.
