Hi
I have a Derived2 class which has Derived as its base and Derived has Base as its base. I want to call a subroutine of Base.pm by the object of Derived2.pm
Please let me know what is going wrong in my code below :
## package Base.pm ### package Base; sub new { my $class = shift; my $self = {}; bless $self, $class; return $self; } sub display { my $self = shift; print "This is Base display \n"; } 1; ## package Derived.pm ## package Derived; @ISA = qw (Base); use Base; sub new { my $class = shift; my $self = {}; print "this is Derived new \n"; bless $self, $class; return $self; } sub display { my $self = shift; print "This is Derived display \n"; } 1 ## package Derived2.pm ### package Derived2; use Derived; @ISA = qw(Derived); use mro; sub new { my $class = shift; my $self = {}; bless $self, $class; return $self; } sub display { my $self = shift; print "This is Derived2 display \n"; } 1 ## Script.pl use strict; use warnings; use mro ; use Derived2; my $obj = Derived2->new(); $obj->display(); #working as expected my $gp = $obj->mro::get_linear_isa->[1]; my $gpm = $gp->can('display'); print "gp $gp |@$gp \n"; print "gp $gp |gpm $gpm \n"; $gp->display(); #does not work
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |