in reply to Re^2: Inheritance - calling parent constructor
in thread Inheritance - calling parent constructor

The difference between hard-coding Parent-> as opposed to invoking SUPER is relevant when you have multiple levels of inheritance. If you created a Grandchild, a method using SUPER would climb the @ISA tree to resolve new, whereas hard-coding Parent-> will go straight there. It's also useful for code reuse, since SUPER is not package specific. For example, if you had a series of validation routines, you could open sub validate { with my $self = shift; $self->SUPER::validate(); and it would crawl the inheritance tree correctly without refactoring and the associated fagility.

You would only need to define a constructor in the child object if it requires additional functionality - in this case, because Child has an additional property.

If you are interested in all this or rolling your own OO, a read read through of perlboot and perltoot is merited.