NAME
    Class::MakeMethods::Docs::ReadMe - About Class::MakeMethods

DESCRIPTION
    This is an updated release of Class::MakeMethods, for distribution
    through CPAN. This release includes the Class::MakeMethods::Template and
    Class::MakeMethods::Emulator modules which were previously distributed
    separately.

MOTIVATION
    Here's the "elevator pitch" for the module:

      By passing arguments to "use Class::MakeMethods ..." statements,
      you can select from a library of hundreds of common types of
      methods, which are dynamically generated and installed as
      subroutines in your module, simplifying the code for your class.

DISTRIBUTION AND INSTALLATION
  Version

    This is Class::MakeMethods v1.009, intended for general use.

    This module's CPAN registration should read:

      Name            DSLIP  Description
      --------------  -----  ---------------------------------------------
      Class::
      ::MakeMethods   RdpOp  Generate common types of methods

  Prerequisites

    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.

  Installation

    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:

    * http://search.cpan.org/~evo/

    * http://www.cpan.org/modules/by-authors/id/E/EV/EVO

    * http://www.evoscript.org/Class-MakeMethods/dist/

    After downloading the distribution, follow the normal procedure to
    unpack and install it, using the commands shown below or their local
    equivalents on your system:

      tar xzf Class-MakeMethods-*.tar.gz
      cd Class-MakeMethods-*
      perl Makefile.PL
      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.

    * http://www.freebsd.org/cgi/ports.cgi?query=Class-MakeMethods

    * http://www.rpmfind.net/linux/rpm2html/search.php?query=perl-Class-Make
      Methods

  Tested Platforms

    This release has been tested succesfully on the following platforms:

      5.6.1 on darwin

    Earlier releases have also tested OK on the following platforms:

      IP30-R12000-irix
      OpenBSD.i386-openbsd
      i386-freebsd / i386-freebsd-thread-multi
      i386-linux
      i386-netbsd / i386-netbsd-thread-multi
      i586-linux / i586-linux-thread-multi-ld
      i686-linux / i686-pld-linux-thread-multi
      ia64-linux
      ppc-linux
      sparc-linux
      sparc-netbsd
      sun4-solaris

    Some earlier versions failed to "make test" on MSWin32, although a
    forced installation would still work; that problem should be fixed in
    the most recent releases.

    You may also review the current test results from CPAN-Testers:

    * http://testers.cpan.org/show/Class-MakeMethods.html

BUGS AND SUPPORT
  Release Status

    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 dependant on it, so it would be fair to say that it is
    fully released.

    However, while some portions are well tested, others 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.

  Known Problems

    It does not appear to be possible to assign subroutine names to closures
    within Perl. As a result, debugging output from Carp and similar sources
    will show all generated methods as "ANON()" rather than
    "YourClass::methodname()".

    See the Class::MakeMethods::Docs::ToDo manpage for other outstanding
    issues and development plans.

  Support

    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, 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 releases.

    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 "@".

  Community

    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:

    * http://cpanratings.perl.org/rate/?distribution=Class-MakeMethods

    For more general discussion, you may wish to post a message on PerlMonks
    or the comp.lang.perl.misc newsgroup:

    * http://www.perlmonks.org/index.pl?node=Seekers%20of%20Perl%20Wisdom

    * http://groups.google.com/groups?group=comp.lang.perl.misc

CREDITS AND COPYRIGHT
  Author

    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 "evo@cpan.org" or
    "simonm@cavalletto.org".

  Feedback and Suggestions

    Thanks to the following people for bug reports, suggestions, and other
    feedback:

      Martyn J. Pearce
      Scott R. Godin
      Ron Savage
      Jay Lawrence
      Adam Spiers
      Malcolm Cook
      Terrence Brannon
      Jared Rhine
      Peter Chen
      Mike Castle

  Source Material

    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

    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 Purkis.

    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::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.

  License

    You may use, modify, and distribute this software under the same terms
    as Perl.