The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
        "overriden attribute-names" are not dramatic, because every attribute
        gets its classname prepended like "Object::attribute" into the hash
        representation of the object.

        But you must be aware that when initializing via new( public => ),
        alwas the first parent attribute is used for the initalization.

        new( Parent1::field => 'bla', Parent2::field => 'blabla' );

NAME

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

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;

DESCRIPTION

This package descibes the default constructor functionality. It is central to Class::Maker because during its call reflection, initialization, inheritance gets handled.

SPECIAL METHODS

sub _arginit : method

Once this method exists in the package of the class it is called right after new() was dispatched. It is generally for the modification of the @_ arguments to a convinient way new() can handle it (It always expects a hash, but with this function one could translate an array to the hash).

sub _preinit : method

sub _postinit : method

<& /maslib/signatures.mas:author_as_pod, &>