Devel::OverloadInfo

Section: User Contributed Perl Documentation (3)
Updated: 2018-01-22
Page Index
 

NAME

Devel::OverloadInfo - introspect overloaded operators  

VERSION

version 0.005  

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 them 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_op_info

    my $info = overload_op_info($class_or_object, $op);

Returns a hash reference with information about the specified overloaded operator of the named class or blessed object.

Returns "undef" if the operator is not overloaded.

See ``Overloadable Operations'' in overload for the available operators.

The keys in the returned hash are as follows:

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

overload_info

    my $info = overload_info($class_or_object);

Returns a hash reference with information about all the overloaded operators of specified class name or blessed object. The keys are the overloaded operators, as specified in %overload::ops (see ``Overloadable Operations'' in overload), and the values are the hashes returned by ``overload_op_info''.  

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.


 

Index

NAME
VERSION
DESCRIPTION
FUNCTIONS
is_overloaded
overload_op_info
overload_info
CAVEATS
AUTHOR
COPYRIGHT AND LICENSE