Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

class::inner(3pm) [debian man page]

Class::Inner(3pm)					User Contributed Perl Documentation					 Class::Inner(3pm)

NAME
Class::Inner - A perlish implementation of Java like inner classes SYNOPSIS
use Class::Inner; my $object = Class::Inner->new( parent => 'ParentClass', methods => { method => sub { ... } }, }, constructor => 'new', args => [@constructor_args], ); DESCRIPTION
Yet another implementation of an anonymous class with per object overrideable methods, but with the added attraction of sort of working dispatch to the parent class's method. METHODS new HASH Takes a hash like argument list with the following keys. parent The name of the parent class. Note that you can only get single inheritance with this or SUPER won't work. methods A hash, keys are method names, values are CODEREFs. constructor The name of the constructor method. Defaults to 'new'. args An anonymous array of arguments to pass to the constructor. Defaults to an empty list. Returns an object in an 'anonymous' class which inherits from the parent class. This anonymous class has a couple of 'extra' methods: SUPER If you were to pass something like $obj = Class::Inner->new( parent => 'Parent', methods => { method => sub { ...; $self->SUPER::method(@_) } }, ); then "$self-"gt"SUPER::method" almost certainly wouldn't do what you expect, so we provide the "SUPER" method which dispatches to the parent implementation of the current method. There seems to be no good way of getting the full "SUPER::" functionality, but I'm working on it. DESTROY Because Class::Inner works by creating a whole new class name for your object, it could potentially leak memory if you create a lot of them. So we add a "DESTROY" method that removes the class from the symbol table once it's finished with. If you need to override a parent's DESTROY method, adding a call to "Class::Inner::clean_symbol_table(ref $self)" to it. Do it at the end of the method or your other method calls won't work. clean_symbol_table The helper subroutine that DESTROY uses to remove the class from the symbol table. new_classname Returns a name for the next anonymous class. AUTHOR
Maintained by Arun Prasaad "<arunbear@cpan.org>" Copyright (c) 2001 by Piers Cawley <pdcawley@iterative-software.com>. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as perl itself. Thanks to the Iterative Software people: Leon Brocard, Natalie Ford and Dave Cross. Also, this module was written initially for use in the PerlUnit project, AKA Test::Unit. Kudos to Christian Lemburg and the rest of that team. SEE ALSO
There are a million and one differen Class constructors available on CPAN, none of them does quite what I want, so I wrote this one to add to that population where hopefully it will live and thrive. BUGS
Bound to be some. Actually the "SUPER" method is a workaround for what I consider to be a bug in perl. perl v5.10.1 2009-11-21 Class::Inner(3pm)

Check Out this Related Man Page

ExtUtils::XSpp::Node::Class(3pm)			User Contributed Perl Documentation			  ExtUtils::XSpp::Node::Class(3pm)

NAME
ExtUtils::XSpp::Node::Class - A class (inherits from Package). DESCRIPTION
An ExtUtils::XSpp::Node::Package sub-class representing a class declaration such as %name{PerlClassName} class MyClass : public BaseClass { ... } The Perl-level class name and the C++ class name attributes are inherited from the ExtUtils::XSpp::Node::Package class. METHODS
new Creates a new "ExtUtils::XSpp::Node::Class" object. Optional named parameters: "methods" can be a reference to an array of methods (ExtUtils::XSpp::Node::Method) of the class, and "base_classes", a reference to an array of base classes ("ExtUtils::XSpp::Node::Class" objects). "catch" may be a list of exception names that all methods in the class handle. add_methods Adds new methods to the class. By default, their scope is "public". Takes arbitrary number of arguments which are processed in order. If an argument is an ExtUtils::XSpp::Node::Access, the current method scope is changed accordingly for all following methods. If an argument is an ExtUtils::XSpp::Node::Method it is added to the list of methods of the class. The method's class name is set to the current class and its scope is set to the current method scope. ACCESSORS
methods Returns the internal reference to the array of methods in this class. Each of the methods is an "ExtUtils::XSpp::Node::Method" base_classes Returns the internal reference to the array of base classes of this class. If the base classes have been defined in the same file, these are the complete class objects including method definitions, otherwise only the C++ and Perl name of the class are available as attributes. perl v5.14.2 2011-12-20 ExtUtils::XSpp::Node::Class(3pm)
Man Page