Class::MakeMethods::Docs::ReadMe - About Class::MakeMethods
This is an updated release of Class::MakeMethods, for distribution through CPAN.
This distribution includes the Class::MakeMethods::Template and
Class::MakeMethods::Emulator modules which were packaged sepearately in some
By passing arguments to "use Class::MakeMethods ..." statements, you
can select from a library of hundreds of common types of methods, which are
dynamically installed as subroutines in your module, simplifying the code for
This is Class::MakeMethods v1.010, intended for general use.
This module's CPAN registration should read:
Name DSLIP Description
-------------- ----- ---------------------------------------------
::MakeMethods RdpOp Generate common types of methods
In general, this module should work with Perl 5.003 or later, without requring
any modules beyond the core Perl distribution.
The following optional feature may not be available on some platforms:
- Class::MakeMethods::Attribute: The ":MakeMethod"
subroutine attribute requires Perl version 5.6 and the Attribute::Handlers
module (from CPAN).
- Class::MakeMethods::Template "--lvalue": The
lvalue modifier provided by the Template generator subclasses will only
work on Perl version 5.6 or later.
- Some third-party tests used to check the compliance of
Emulator modules require Test::More and will be automatically skipped on
machines which do not have this installed.
You should be able to install this module using the CPAN shell interface:
perl -MCPAN -e 'install Class::MakeMethods'
Alternately, you may retrieve this package from CPAN or from the author's site:
After downloading the distribution, follow the normal procedure to unpack and
install it, using the commands shown below or their local equivalents on your
tar xzf Class-MakeMethods-*.tar.gz
make test && sudo make install
Thanks to the kind generosity of other members of the Perl community, this
distribution is also available repackaged in the FreeBSD "ports" and
Linux RPM formats. This may simplify installation for some users, but be aware
that these alternate distributions may lag a few versions behind the latest
release on CPAN.
This release has been tested successfully on the following platforms:
5.6.1 on darwin
Earlier releases have also tested OK on the following platforms:
i386-freebsd / i386-freebsd-thread-multi
i386-netbsd / i386-netbsd-thread-multi
i586-linux / i586-linux-thread-multi-ld
i686-linux / i686-pld-linux-thread-multi
Some earlier versions failed to "make test" on MSWin32, although a
forced installation would still work; that problem should be fixed in the most
You may also review the current test results from CPAN-Testers:
This module has been used in a variety of production systems and has been
available on CPAN for over two years, with several other distributions
dependent on it, so it would be fair to say that it is fully released.
However, while the commonly-used portions are well tested, some of the more
obscure combinations of options are less so, and new bug reports do trickle in
occasionally. If you do encounter any problems, please inform the author and
I'll endeavor to patch them promptly.
Additional features have been outlined for future development, but the intent is
support these by adding more options to the declaration interface, while
maintaining backward compatibility.
See Class::MakeMethods::Docs::ToDo for other outstanding issues and development
If you have questions or feedback about this module, please feel free to contact
the author at the below address. Although there is no formal support program,
I do attempt to answer email promptly.
I would be particularly interested in any suggestions towards improving the
documentation and correcting any Perl-version or platform dependencies, as
well as general feedback and suggested additions.
Bug reports that contain a failing test case are greatly appreciated, and
suggested patches will be promptly considered for inclusion in future
To report bugs via the CPAN web tracking system, go to
"http://rt.cpan.org/NoAuth/Bugs.html?Dist=Class-MakeMethods" or send
mail to "Dist=Class-MakeMethods#rt.cpan.org", replacing
"#" with "@".
If you've found this module useful or have feedback about your experience with
it, consider sharing your opinion with other Perl users by posting your
comment to CPAN's ratings system:
For more general discussion, you may wish to post a message on PerlMonks or the
Developed by Matthew Simon Cavalletto at Evolution Softworks. More free Perl
software is available at "www.evoscript.org".
You may contact the author directly at "email@example.com" or
Thanks to the following people for bug reports, suggestions, and other feedback:
Martyn J. Pearce
Scott R. Godin
This package was inspired by the ground-breaking original closure-generating
method maker module:
Class::MethodMaker, by Peter Seibel.
Additional inspiration, cool tricks, and blocks of useful code for this module
were extracted from the following CPAN modules:
Class::Accessor, by Michael G Schwern
Class::Contract, by Damian Conway
Class::SelfMethods, by Toby Everett
Copyright 2002, 2003 Matthew Simon Cavalletto.
Portions copyright 1998, 1999, 2000, 2001 Evolution Online Systems, Inc.
Based on Class::MethodMaker, originally developed by Peter Seibel. Portions
Copyright 1996 Organic Online. Portions Copyright 2000 Martyn J. Pearce.
Class::MakeMethods::Emulator::accessors is based on accessors. Portions by Steve
Class::MakeMethods::Emulator::AccessorFast is based on Class::Accessor::Fast.
Portions Copyright 2000 Michael G Schwern.
Class::MakeMethods::Emulator::Inheritable is based on Class::Data::Inheritable.
Portions Copyright 2000 Damian Conway and Michael G Schwern.
Class::MakeMethods::Emulator::mcoder is based on mcoder. Portions Copyright 2003
by Salvador Fandiño.
Class::MakeMethods::Emulator::Singleton is based on Class::Singleton, by Andy
Wardley. Portions Copyright 1998 Canon Research Centre Europe Ltd.
Class::MakeMethods::Utility::Ref is based on Ref.pm. Portions Copyright 1994
David Muir Sharnoff.
You may use, modify, and distribute this software under the same terms as