NAME
MOP::Util - For MOP External Use Only
VERSION
version 0.11
DESCRIPTION
This is a public API of MOP related utility functions.
METHODS
get_meta( $package )
-
This will guess the most sensible type of meta object to represent the
$package
supplied. The test is simple, if there is anything in the@ISA
array within$package
, then it is clearly a class and therefore returns a MOP::Class instance. However, if there is nothing in@ISA
we conservatively estimate that this is a role and return a MOP::Role instance.In pretty much all cases that matter, a role and a class are entirely interchangable.
compose_roles( $meta )
-
This will look to see if the
$meta
object has any roles stored in it's@DOES
array, if so it will compose the roles together and apply that result to$meta
.Note, if this is called more than once, the results are undefined.
inherit_slots( $meta )
-
This will look to see if the
$meta
object is a MOP::Class instance and if so, will then loop through the direct superclasses (thouse in the@ISA
array of$meta
) and alias all the slots into the$meta
namespace.Note, if this is called more than once, the results are undefined.
defer_until_UNITCHECK( $cb )
-
Given a CODE reference, this will defer the execution of that
$cb
until the next available UNITCHECK phase.Note, it is not receommended to heavily abuse closures here, it might get messy, might not, better to keep it clean and just not go there.
AUTHOR
Stevan Little <stevan@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2017 by Stevan Little.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.