NAME¶
Class::MOP::Method - Method Meta Object
VERSION¶
version 2.0603
DESCRIPTION¶
The Method Protocol is very small, since methods in Perl 5 are just subroutines
in a specific package. We provide a very basic introspection interface.
METHODS¶
- Class::MOP::Method->wrap($code,
%options)
- This is the constructor. It accepts a method body in the
form of either a code reference or a Class::MOP::Method instance, followed
by a hash of options.
The options are:
- •
- name
The method name (without a package name). This is required if $code is a
coderef.
- •
- package_name
The package name for the method. This is required if $code is a
coderef.
- •
- associated_metaclass
An optional Class::MOP::Class object. This is the metaclass for the method's
class.
- $metamethod->clone(%params)
- This makes a shallow clone of the method object. In
particular, subroutine reference itself is shared between all clones of a
given method.
When a method is cloned, the original method object will be available by
calling "original_method" on the clone.
- $metamethod->body
- This returns a reference to the method's subroutine.
- $metamethod->name
- This returns the method's name
- $metamethod->package_name
- This returns the method's package name.
- $metamethod->fully_qualified_name
- This returns the method's fully qualified name (package
name and method name).
- $metamethod->associated_metaclass
- This returns the Class::MOP::Class object for the method,
if one exists.
- $metamethod->original_method
- If this method object was created as a clone of some other
method object, this returns the object that was cloned.
- $metamethod->original_name
- This returns the method's original name, wherever it was
first defined.
If this method is a clone of a clone (of a clone, etc.), this method returns
the name from the first method in the chain of clones.
- $metamethod->original_package_name
- This returns the method's original package name, wherever
it was first defined.
If this method is a clone of a clone (of a clone, etc.), this method returns
the package name from the first method in the chain of clones.
- $metamethod->original_fully_qualified_name
- This returns the method's original fully qualified name,
wherever it was first defined.
If this method is a clone of a clone (of a clone, etc.), this method returns
the fully qualified name from the first method in the chain of
clones.
- $metamethod->is_stub
- Returns true if the method is just a stub:
sub foo;
- $metamethod->attach_to_class($metaclass)
- Given a Class::MOP::Class object, this method sets the
associated metaclass for the method. This will overwrite any existing
associated metaclass.
- $metamethod->detach_from_class
- Removes any associated metaclass object for the
method.
- $metamethod->execute(...)
- This executes the method. Any arguments provided will be
passed on to the method itself.
- Class::MOP::Method->meta
- This will return a Class::MOP::Class instance for this
class.
It should also be noted that Class::MOP will actually bootstrap this module
by installing a number of attribute meta-objects into its metaclass.
AUTHOR¶
Moose is maintained by the Moose Cabal, along with the help of many
contributors. See "CABAL" in Moose and "CONTRIBUTORS" in
Moose for details.
COPYRIGHT AND LICENSE¶
This software is copyright (c) 2012 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.