Not sure if this is a useful answer, however you seem to be struggling with overriding methods so consider:
# file noname1.pm: use strict; use warnings; package Hello; sub new { my $type = shift; # Call as: Hello->new (); my $class = ref $type || $type; return bless {}, $class; } sub hi { my ($self, $tail) = @_; $tail ||= ''; return 'Hello' . $tail; } 1; package World; use noname1; use base qw(Hello); sub new { my $type = shift; # Call as: World->new (); my $class = ref $type || $type; return Hello::new ($class); } sub hi { my ($self, $tail) = @_; $tail ||= ''; # Now call up to get base class work done return $self->Hello::hi (' World' . $tail); } 1; #file noname.pl: use strict; use warnings; use noname1; my $hi = World->new (); # Create derived class object print $hi->hi ('. How goes it?'); # Call method on derived class objec +t
Prints:
Hello World. How goes it?
In reply to Re: overridden and inheritance
by GrandFather
in thread overridden and inheritance
by wst
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |