The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
DISCLAIMER

                                    Class::Maker
                                 ============

                  ! THIS IS ALPHA SOFTWARE - DO NOT USE THIS MODULE !

              THIS SOFTWARE SHIPS WITHOUT ANY WARRANTY OF ANY KIND

          Everything except the basic functionalities are still under constant
          reorganisation. Also major parts of the documentation are wrong or already
          outdated.

NAME

  Class::Maker - classes, reflection, schemas, serialization, attribute- and
  multiple inheritance

VERSION

  0.06 (Thu Dec 17 21:41:43 2009)

DESCRIPTION

  AUDIENCE This package is for the intermediate-to-pro oo-perl programmer.
  While it has basicly similarities to Class::Struct and Class::MethodMaker,
  this package has significant differences and additional functionalities.

  ATTRIBUTE INHERITANCE Because all attributes are accessible through
  accessors, they are following ISA inheritance / overloading as normal
  methods do.

  MULTIPLE INHERITANCE Per default, Class::Maker cares for constructing all
  parent objects via its 'new' or '_init' constructors. It uses a trick to
  derive from even non Class::Maker classes correctly.

  REFLECTION/CLASS INTROSPECTION Java-like reflection or recursive class
  introspectiong for methods/attribute/ triggers are available during
  runtime. This is helpfull for implementing persistance, serialization,
  class tree charting and some other nifty tricks.

  OBJECT PERSISTANCE A recursive Tangram (see cpan) schema generator is also
  available, which significantly eases the use of object-persistance as long
  as you use Class::Maker classes and following some simple guidelines.

SYNOPSIS

    use Class::Maker qw(:all);

    class Something;

    class Person,
    {
       isa => [ 'Something' ],

       public =>
       {
         scalar => [qw( name age internal )],
       },

       private
       {
         int => [qw( internal )],
       },
    };

    sub Person::hello
    {
      my $this = shift;

      $this->_internal( 2123 ); # the private one

      printf "Here is %s and i am %d years old.\n",  $this->name, $this->age;
    };

    my $p = Person->new( name => Murat, age => 27 );

    $p->hello;

INSTALLATION

  I highly recommend to use CPAN for one-stop-shop installation:

  perl -MCPAN -e "install Class::Maker"

PREREQUISITES

  Following modules get automatically installed via the CPAN module. See
  INSTALLATION above. Data::Type has a mechanism for delayed loading of
  modules. This means modules are loaded only when the used types require
  them, not all at once.

  XML::LibXSLT (0)
  Data::Dumper (0)
  IO::Extended (0)
  Error (0.15)
  Algorithm::FastPermute (0.05)
  Array::Compare (1.03)

READON

  Visit the Class::Maker main documentation.

CONTACT

  Please help to make life easier and send comments/suggestions/reports to
  <http://rt.cpan.org> or help with <http://testers.cpan.org>.

AUTHOR

  Murat Uenalan, <muenalan@cpan.org>

COPYRIGHT/LICENSE

  (c) 2009 by Murat Uenalan. All rights reserved. Note: This program is free
  software; you can redistribute it and/or modify it under the same terms as
  perl itself