in reply to Re: How to use Inheritance with Inside-Out Classes and Hash Based Classes
in thread How to use Inheritance with Inside-Out Classes and Hash Based Classes

Thanks Aristotle, that's exactly what I was after.

In fact, my actual question should have been phrased so, "How can I initialise File::Samba's data structures in the constructor of my Samba::LDAP class?"

Thanks again,
Gavin.

Walking the road to enlightenment... I found a penguin and a camel on the way.....
Fancy a yourname@perl.me.uk? Just ask!!!
  • Comment on Re^2: How to use Inheritance with Inside-Out Classes and Hash Based Classes

Replies are listed 'Best First'.
Re^3: How to use Inheritance with Inside-Out Classes and Hash Based Classes
by Perl Mouse (Chaplain) on Nov 16, 2005 at 09:32 UTC
    How can I initialise File::Samba's data structures in the constructor of my Samba::LDAP class?
    The simplest answer is: don't write a constructor in your Samba::LDAP class. Just inherit the constructor, and let it do what it does. If you need to initialize something in your Samba::LDAP class, write a sub "init". Then you can write:
    my $obj = Samba::LDAP->new(args needed by File::Samba)->init(initializ +ation arguments)
    But if you insist in doing multiple things (creation and initialization) in one sub, do something like:
    sub create_and_initialize { # 'new' is a bad name; it does more. my $class = shift; my $arg = pop; # Initialization argument for my class; my $obj = bless $class->SUPER::new(@_), $class; # Initialize the object using $arg. return $obj; }
    Perl --((8:>*