++ed by:
KES ETHER

2 PAUSE users
1 non-PAUSE user.

Dagfinn Ilmari Mannsåker

NAME

Devel::OverloadInfo - introspect overloaded operators

VERSION

version 0.004

DESCRIPTION

Devel::OverloadInfo returns information about overloaded operators for a given class (or object), including where in the inheritance hierarchy the overloads are declared and where the code implementing it is.

FUNCTIONS

is_overloaded

   if (is_overloaded($class_or_object)) { ... }

Returns a boolean indicating whether the given class or object has any overloading declared. Note that a bare use overload; with no actual operators counts as being overloaded.

Equivalent to overload::Overloaded(), but doesn't trigger various bugs associated with it in versions of perl before 5.16.

overload_info

    my $info = overload_info($class_or_object);

Returns a hash reference with information about all the overloaded operators of the argument, which can be either a class name or a blessed object. The keys are the overloaded operators, as specified in %overload::ops (see "Overloadable Operations" in overload).

class

The name of the class in which the operator overloading was declared.

code

A reference to the function implementing the overloaded operator.

code_name

The name of the function implementing the overloaded operator, as returned by sub_fullname in Sub::Identify.

method_name (optional)

The name of the method implementing the overloaded operator, if the overloading was specified as a named method, e.g. use overload $op => 'method';.

code_class (optional)

The name of the class in which the method specified by method_name was found.

value (optional)

For the special fallback key, the value it was given in class.

CAVEATS

Whether the fallback key exists when it has its default value of undef varies between perl versions: Before 5.18 it's there, in later versions it's not.

AUTHOR

Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Dagfinn Ilmari Mannsåker.

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