in reply to Creating Common Constructor

If you are really adventerous you could try Class::Maker (badly documented though):
use Class::Maker qw(:all); class 'Zoo', { public => { array => [qw( animals )], } }; class 'Animal', { public => { string => [qw( name )], } }; class 'Camel', { isa => [qw( Animal )], }; class 'Lama', { isa => [qw( Animal )], }; my $z = Zoo->new(); push @{ $z->animals }, Camel->new( name => 'Murat' );
It provides a default constructor which is quite elegant. Good Luck, Murat