Make really simple methods
package MyObject; use Class::MakeMethods::Basic::Hash ( 'new' => [ 'new' ], 'scalar' => [ 'foo', 'bar' ] ); package main; my $obj = MyObject->new( foo => "Foozle", bar => "Bozzle" ); print $obj->foo(); $obj->bar("Barbados");
This document describes the various subclasses of Class::MakeMethods included under the Basic::* namespace, and the method types each one provides.
The Basic subclasses provide stripped-down method-generation implementations.
Subroutines are generated as closures bound to each method name.
When you \*(C`use\*(C' a subclass of this package, the method declarations you provide as arguments cause subroutines to be generated and installed in your module. You can also omit the arguments to \*(C`use\*(C' and instead make methods at runtime by passing the declarations to a subsequent call to \*(C`make()\*(C'.
You may include any number of declarations in each call to \*(C`use\*(C' or \*(C`make()\*(C'. If methods with the same name already exist, earlier calls to \*(C`use\*(C' or \*(C`make()\*(C' win over later ones, but within each call, later declarations superceed earlier ones.
You can install methods in a different package by passing \*(C`-TargetClass => package\*(C' as your first arguments to \*(C`use\*(C' or \*(C`make\*(C'.
See \*(L"\s-1USAGE\s0\*(R" in Class::MakeMethods for more details.
The following types of declarations are supported:
generator_type => 'method_name'
generator_type => 'name_1 name_2...'
generator_type => [ 'name_1', 'name_2', ...]
For a list of the supported values of generator_type, see \*(L"\s-1BASIC\s0 \s-1CLASSES\s0\*(R" in Class::MakeMethods::Docs::Catalog, or the documentation for each subclass.
For each method name you provide, a subroutine of the indicated type will be generated and installed under that name in your module.
Method names should start with a letter, followed by zero or more letters, numbers, or underscores.
See Class::MakeMethods for general information about this distribution.
For distribution, installation, support, copyright and license information, see Class::MakeMethods::Docs::ReadMe.