Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

class::makemethods::emulator::struct(3pm) [debian man page]

MakeMethods::Emulator::Struct(3pm)			User Contributed Perl Documentation			MakeMethods::Emulator::Struct(3pm)

NAME
Class::MakeMethods::Emulator::Struct - Emulate Class::Struct SYNOPSIS
use Class::MakeMethods::Emulator::Struct; struct ( simple => '$', ordered => '@', mapping => '%', obj_ref => 'FooObject' ); DESCRIPTION
This module emulates the functionality of Class::Struct by munging the provided field-declaration arguments to match those expected by Class::MakeMethods. It supports the same four types of accessors, the choice of array-based or hash-based objects, and the choice of installing methods in the current package or a specified target. EXAMPLE
The below three declarations create equivalent methods for a simple hash-based class with a constructor and four accessors. use Class::Struct; struct ( simple => '$', ordered => '@', mapping => '%', obj_ref => 'FooObject' ); use Class::MakeMethods::Emulator::Struct; struct ( simple => '$', ordered => '@', mapping => '%', obj_ref => 'FooObject' ); use Class::MakeMethods ( -MakerClass => 'Standard::Array', 'new' => 'new', 'scalar' => 'simple', 'array -auto_init 1' => 'ordered', 'hash -auto_init 1' => 'mapping', 'object -auto_init 1' => '-class FooObject obj_ref' ); COMPATIBILITY
This module aims to offer a "95% compatible" drop-in replacement for the core Class::Struct module for purposes of comparison and code migration. The "class-struct.t" test for the core Class::Struct module is included with this package. The test is unchanged except for the a direct substitution of this emulator's name in the place of the core module. However, there are numerous internal differences between the methods generated by the original Class::Struct and this emulator, and some existing code may not work correctly without modification. SEE ALSO
See Class::MakeMethods for general information about this distribution. See Class::MakeMethods::Emulator for more about this family of subclasses. See Class::Struct for documentation of the original module. See Class::MakeMethods::Standard::Hash and Class::MakeMethods::Standard::Array for documentation of the created methods. perl v5.10.1 2004-09-06 MakeMethods::Emulator::Struct(3pm)

Check Out this Related Man Page

MakeMethods::Docs::RelatedModules(3pm)			User Contributed Perl Documentation		    MakeMethods::Docs::RelatedModules(3pm)

NAME
Class::MakeMethods::Docs::RelatedModules - Survey of Class Builders SYNOPSIS
http://search.cpan.org/search?mode=module&query=Class DESCRIPTION
There are a variety of modules on CPAN dedicated to the purpose of generating common constructor and accessor methods. Below, I survey several of these, summarizing some basic features and technical approaches, and comparing them to Class::MakeMethods and other modules. Caution Please note that these comments are for basic comparison purposes only and may be incorrect or out of date. Please consult the documentation from a current version of each module for more specific details. Corrections and clarifications would by welcomed by the author at the email address below. Points of Comparison In general, I compared the following characteristics: Distribution Is it included with Perl, or on CPAN? Is it being actively maintained? Usage How do you go about declaring your class's methods? Mechanism How are they generated and delivered? Instance type Are the objects of your class blessed hashes, or something else? Core Methods Does the module provide a constructor and basic accessors? Are there specialized methods for hash-ref, array-ref, and object-ref accessors? Extensible Can you subclass the package to create new types of methods, or is there some other way to extend it? Other Methods Other types of methods provided. Emulator Does Class::MakeMethods provide a drop-in replacement for this module? Comments Other characteristics or features of note. RELATED MODULES
accessors Distribution CPAN. Uploaded Sep 2003. Comments I have not yet reviewed this module in detail. Example package MyObject; use accessors qw( foo bar baz ); Attribute::Property Distribution CPAN. Comments I have not yet reviewed this module in detail. Class::Accessor Distribution CPAN. Last update 4/01. Usage Inherit and call function with declaration arguments Mechanism Generates and installs closures Instance Type Hash. Subclasses Cleanly Cleanly. Standard Methods Scalar accessors. Extensible Yes. Comments Accessor methods call overwritable "self-<get(key)" and "self-<set(key, value)" methods. Also includes Class::Accessor::Fast, which creates direct hash keys accessors without calling get and set methods. Emulator Yes, but only for the Fast variation; see Class::MakeMethods::Emulator::AccessorFast. Example package MyObject; @ISA = qw(Class::Accessor); MyObject->mk_accessors(qw( simple ordered mapping obj_ref )); Class::Class Distribution CPAN. Last update 1/00. Usage Inherit and fill %MEMBERS hash; methods created when first object is created Mechanism Generates and installs closures Instance Type Hash. Subclasses Cleanly Yes. Standard Methods Constructor and various accessors. Extensible No. Example Usage is similar to Class::Struct: package MyObject; use Class::Class; @ISA = qw(Class::Class); %MEMBERS = ( simple => '$', ordered => '@', mapping => '%', obj_ref => 'FooObject' ); Other Method Types Provides a polymorph() method that is similar to Class::Method's "ClassName:class_name -require". Class::Constructor Distribution CPAN. Last update 11/01. Usage Inherit and call function with declaration arguments Mechanism Generates and installs closures Instance Type Hash. Subclasses Cleanly Cleanly. Standard Methods Hash constructor, with bells. Extensible No. Emulator No, but possible. Example package MyObject; @ISA = qw(Class::Constructor); MyObject->mk_constructor( Name => 'new' ); Class::Classgen Distribution CPAN. Last update 12/00. Usage Pre-processor run against declaration files. Mechanism Assembles and saves code file Instance Type Hash. Subclasses Cleanly Yes. (I think.) Standard Methods Constructor and various accessors. Extensible No. (I think.) Example header: package MyObject; variables: $simple @ordered %mapping $obj_ref Class::Contract Distribution CPAN. Last update 5/01. Usage Call function with declaration arguments Mechanism Generates and installs closures Instance Type Scalar reference with external data storage. Subclasses Cleanly Yes. Standard Methods Constructor and various accessors. Extensible Yes. (I think.) Comments Supports pre- and post-conditions, class invariants, and other software engineering goodies. Example package MyObject; use Class::Contract; contract { ctor 'new'; attr 'simple' => SCALAR; attr 'ordered' => ARRAY; attr 'mapping' => HASH; attr 'obj_ref' => 'FooObject'; } Class::Data::Inheritable Distribution CPAN. Last update 4/00. Usage Inherit and call function with declaration arguments Mechanism Generates and installs closures Instance Type Class data, with inheritance. Subclasses Cleanly Yes, specifically. Standard Methods Scalar accessors. Extensible No. Example Usage is similar to Class::Accessor: package MyObject; @ISA = qw(Class::Data::Inheritable); MyObject->mk_classdata(qw( simple ordered mapping obj_ref )); Emulator Yes, Class::MakeMethods::Emulator::Inheritable, passes original test suite. Class::Delegate Distribution CPAN. Uploaded 12/0. Comments I have not yet reviewed this module in detail. Class::Delegation Distribution CPAN. Uploaded 12/01. Comments I have not yet reviewed this module in detail. Class::Generate Distribution CPAN. Last update 11/00. Usage Call function with declaration arguments Mechanism Assembles and evals code string, or saves code file. Instance Type Hash. Subclasses Cleanly Yes. Standard Methods Constructor and accessors (scalar, array, hash, object, object array, etc). Extensible Unknown. Comments Handles private/protected limitations, pre and post conditions, assertions, and more. Example Usage is similar to Class::Struct: package MyObject; use Class::Generate; class MyObject => [ simple => '$', ordered => '@', mapping => '%', obj_ref => 'FooObject' ]; Class::Hook Distribution CPAN. Uploaded 12/01. Comments I have not yet reviewed this module in detail. Class::Holon Distribution CPAN. Experimental/Alpha release 07/2001. Instance Type Hash, array, or flyweight-index. Subclasses Cleanly No. (I think.) Standard Methods Constructor and scalar accessors; flywieght objects also get scalar mutator methods. Extensible No. (I think.) Comments I'm not sure I understand the intent of this module; perhaps future versions will make this clearer.... Class::MethodMaker Distribution CPAN. Last update 1/01. Usage Import, or call function, with declaration arguments Mechanism Generates and installs closures Instance Type Hash, Static. Subclasses Cleanly Yes. Standard Methods Constructor and various accessors. Extensible Yes. Example Usage is similar to Class::MakeMethods: package MyObject; use Class::MethodMaker ( new => 'new', get_set => 'simple', list => 'ordered', hash => 'mapping', object => [ 'FooObject' => 'obj_ref' ], ); Emulator Yes, Class::MakeMethods::Emulator::MethodMaker, passes original test suite. Class::MakeMethods Distribution CPAN. Usage Import, or call function, with declaration arguments; or if desired, make methods on-demand with Autoload, or declare subroutines with a special Attribute. Mechanism Generates and installs closures Instance Type Hash, Array, Scalar, Static, Class data, others. Subclasses Cleanly Yes. Standard Methods Constructor and various accessors. Extensible Yes. Example Usage is similar to Class::MethodMaker: package MyObject; use Class::MakeMethods::Hash ( new => 'new', scalar => 'simple', array => 'ordered', hash => 'mapping', object => [ 'obj_ref', { class=>'FooObject' } ], ); Class::Maker Distribution CPAN. Last update 7/02. Usage Call function with declaration arguments. Mechanism Generates and installs closures (I think). Instance Type Hash (I think). Subclasses Cleanly Unknown. Standard Methods Constructor and various scalar and reference accessors. Extensible Unknown. Comments I haven't yet reviewed this module closely. Class::SelfMethods Distribution CPAN. Last update 2/00. Usage Inherit; methods created via AUTOLOAD Mechanism Generates and installs closures (I think) Instance Type Hash. Subclasses Cleanly Yes. Standard Methods Constructor and scalar/code accessors (see Comments). Extensible No. Comments Individual objects may be assigned a subroutine that will be called as a method on subsequent accesses. If an instance does not have a value for a given accessor, looks for a method defined with a leading underscore. Class::Struct Distribution Included in the standard Perl distribution. Replaces Class::Template. Usage Call function with declaration arguments Mechanism Assembles and evals code string Instance Type Hash or Array Subclasses Cleanly No. Standard Methods Constructor and various accessors. Extensible No. package MyObject; use Class::Struct; struct( simple => '$', ordered => '@', mapping => '%', obj_ref => 'FooObject' ); Emulator Yes, Class::MakeMethods::Emulator::Struct. Class::StructTemplate Distribution CPAN. Last update 12/00. No documentation available. Usage Unknown. Mechanism Unknown. Class::Template Distribution CPAN. Out of date. Usage Call function with declaration arguments (I think) Mechanism Assembles and evals code string (I think) Instance Type Hash. Subclasses Cleanly Yes. (I think.) Standard Methods Constructor and various accessors. Extensible No. (I think.) Example Usage is similar to Class::Struct: package MyObject; use Class::Template; members MyObject { simple => '$', ordered => '@', mapping => '%', obj_ref => 'FooObject' }; Class::Virtual Generates methods that fail with a message indicating that they were not implemented by the subclass. (Cf. 'Template::Universal:croak -abstract'.) Also provides a list of abstract methods that have not been implemented by a subclass. Distribution CPAN. Last update 3/01. Extensible Unknown. Mechanism Uses Class::Data::Inheritable and installs additional closures. CodeGen::PerlBean Distribution CPAN. Usage Call function with declaration arguments. Mechanism Generates and writes source code to a file. Instance Type Hash (I think). Subclasses Cleanly Unknown. Standard Methods Constructor and various scalar and reference accessors. Extensible Unknown. Comments I haven't yet reviewed this module closely. HTML::Mason::MethodMaker Distribution CPAN. Usage Package import with declaration arguments Mechanism Generates and installs closures Instance Type Hash. Standard Methods Scalar accessors. Extensible No. Example use HTML::Mason::MethodMaker ( read_write => [ qw( simple ordered mapping obj_ref ) ] ); TO DO
The following modules are relevant but have not yet been cataloged above. Attribute::Property Class::Accessor::Chained Class::Accessor::Lvalue Class::Accessor::Ref Class::AutoClass Class::Builder Class::Member Class::Trigger SEE ALSO
See Class::MakeMethods for general information about this distribution. CREDITS AND COPYRIGHT
Developed By M. Simon Cavalletto, simonm@cavalletto.org Evolution Softworks, www.evoscript.org Copyright Copyright 2002 Matthew Simon Cavalletto. Portions copyright 2000, 2001 Evolution Online Systems, Inc. License You may use, modify, and distribute this document under the same terms as Perl. perl v5.10.1 2009-10-08 MakeMethods::Docs::RelatedModules(3pm)
Man Page