atemon has asked for the wisdom of the Perl Monks concerning the following question:
Hi Monks,
I have posted this as a comment at "Re: my $self is stumped!". One Monk suggested to discuss it as a new post. So I am posting it again. Please refer to "my $self is stumped!" for original question to which I commented, for a clear picture.
We use the code $self->SUPER::introduce();to call introduce() of package person. Unlike Java or other Object Oriented Languages, 'SUPER' is not an object or reference to the instance of parent. The 'SUPER' just make the parser to look into @ISA for packages containing the method 'introduce()'
In the very basics of perl Object Orientations itself, we learn that in $obj->method(), $obj is the 1st argument to function 'method()'. In case of $self->SUPER::introduce();we can see that function is ' SUPER::introduce() ' and NOT' introduce() '. Also, the object passed is ' $self ' and NOT ' $self->SUPER '. For 'real' Object Oriented designs, don't we need ' SUPER ' as an object or reference to the instance of base classes(s). (I know there are some limitations)
Here the question is "How the child (object) know its parent(object)" and NOT "Parent knowing the child"
Hello Monks, Can you help us to solve this problem, other than creating instance of base classes inside our package?
--VC
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: SUPER in OOPerl is dumped with $self
by dsheroh (Monsignor) on Jul 03, 2007 at 16:02 UTC | |
|
Re: SUPER in OOPerl is dumped with $self
by pajout (Curate) on Jul 03, 2007 at 09:42 UTC | |
by atemon (Chaplain) on Jul 03, 2007 at 10:03 UTC | |
by pajout (Curate) on Jul 03, 2007 at 10:47 UTC | |
by atemon (Chaplain) on Jul 03, 2007 at 12:42 UTC | |
by pajout (Curate) on Jul 03, 2007 at 14:24 UTC | |
by dsheroh (Monsignor) on Jul 03, 2007 at 16:31 UTC | |
by dsheroh (Monsignor) on Jul 03, 2007 at 20:10 UTC | |
by dsheroh (Monsignor) on Jul 03, 2007 at 16:24 UTC |