package Class::MakeMethods::Basic; use Class::MakeMethods '-isasubclass'; $VERSION = 1.000; 1; __END__ ######################################################################## =head1 NAME Class::MakeMethods::Basic - Make really simple methods =head1 SYNOPSIS 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"); =head1 DESCRIPTION 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. =head2 Calling Conventions When you 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 and instead make methods at runtime by passing the declarations to a subsequent call to C. You may include any number of declarations in each call to C or C. If methods with the same name already exist, earlier calls to C or 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 =E I> as your first arguments to C or C. See L for more details. =head2 Declaration Syntax The following types of declarations are supported: =over 4 =item * I => 'I' =item * I => 'I I...' =item * I => [ 'I', 'I', ...] =back For a list of the supported values of I, see L, 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. =head1 SEE ALSO See L for general information about this distribution. For distribution, installation, support, copyright and license information, see L. =cut