Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

method::alias(3pm) [debian man page]

Method::Alias(3pm)					User Contributed Perl Documentation					Method::Alias(3pm)

NAME
Method::Alias - Create method aliases (and do it safely) SYNOPSIS
# My method sub foo { ... } # Alias the method use Method::Alias 'bar' => 'foo', 'baz' => 'foo'; DESCRIPTION
For a very long time, whenever I wanted to have a method alias (provide an alternate name for a method) I would simple do a GLOB alias. That is, # My method sub foo { ... } # Alias the method *bar = *foo; While this works fine for functions, it does not work for methods. If your class has a subclass that redefines "foo", any call to "bar" will result in the overloaded method being ignored and the wrong "foo" method being called. These are basically bugs waiting to happen, and having completed a number of very large APIs with lots of depth myself, I've been bitten several times. In this situation, the canonical and fasest way to handle an alias looks something like this. # My method sub foo { ... } # Alias the method sub bar { shift->foo(@_) } Note that this adds an extra entry to the caller array, but this isn't really all that important unless you are paranoid about these things. The alternative would be to try to find the method using UNIVERSAL::can, and then goto it. I might add this later if someone really wants it, but until then the basic method will suffice. That doing this right is even worthy of a module is debatable, but I would rather have something that looks like a method alias definition, than have to document additional methods all the time. Using Method::Alias Method::Alias is designed to be used as a pragma, to which you provide a set of pairs of method names. Only very minimal checking is done, if you wish to create infinite loops or what have you, you are more than welcome to shoot yourself in the foot. # Add a single method alias use Method::Alias 'foo' => 'bar'; # Add several method aliases use Method::Alias 'a' => 'b', 'c' => 'd', 'e' => 'f'; And for now, that's all there is to it. METHODS
import from => to, ... Although primarily used as a pragma, you may call import directly if you wish. Taking a set of pairs of normal strings, the import method creates a number of methods in the caller's package to call the real method. Returns true, or dies on error. SUPPORT
Bugs should always be submitted via the CPAN bug tracker <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Method-Alias> For other issues, contact the maintainer AUTHORS
Adam Kennedy <cpan@ali.as> SEE ALSO
<http://ali.as/> COPYRIGHT
Copyright 2004, 2006 Adam Kennedy. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. perl v5.8.8 2006-07-15 Method::Alias(3pm)

Check Out this Related Man Page

Class::MOP::Method::Wrapped(3pm)			User Contributed Perl Documentation			  Class::MOP::Method::Wrapped(3pm)

NAME
Class::MOP::Method::Wrapped - Method Meta Object for methods with before/after/around modifiers VERSION
version 2.0603 DESCRIPTION
This is a Class::MOP::Method subclass which implements before, after, and around method modifiers. METHODS
Construction Class::MOP::Method::Wrapped->wrap($metamethod, %options) This is the constructor. It accepts a Class::MOP::Method object and a hash of options. The options are: o name The method name (without a package name). This will be taken from the provided Class::MOP::Method object if it is not provided. o package_name The package name for the method. This will be taken from the provided Class::MOP::Method object if it is not provided. o associated_metaclass An optional Class::MOP::Class object. This is the metaclass for the method's class. $metamethod->get_original_method This returns the Class::MOP::Method object that was passed to the constructor. $metamethod->add_before_modifier($code) $metamethod->add_after_modifier($code) $metamethod->add_around_modifier($code) These methods all take a subroutine reference and apply it as a modifier to the original method. $metamethod->before_modifiers $metamethod->after_modifiers $metamethod->around_modifiers These methods all return a list of subroutine references which are acting as the specified type of modifier. 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. perl v5.14.2 2012-06-28 Class::MOP::Method::Wrapped(3pm)
Man Page