VERSION
version 0.004DESCRIPTION
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 Mannsa°ker <[email protected]>COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Dagfinn Ilmari Mannsa°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.