my $instanceC = CLASS_C->new();
$instanceC->method_from_class_A();
####
package CLASS_C;
use CLASS_B;
@ISA = ('CLASS_B');
use strict;
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my $self = {};
$self->{attribut} = 1;
$self = $class->SUPER::new(self => $self);
return $self;
}
1;
####
package CLASS_B;
use CLASS_A;
@ISA = ('CLASS_A');
use strict;
sub new {
my $proto = shift;
my (%params) = @_;
my $class = ref($proto) || $proto;
my $self = $class->SUPER::new();
foreach my $attr (keys %{$params{'self'}}) {
$self->{$attr} = $params{'self'}->{$attr};
}
return $self;
}
1;
####
package CLASS_A;
use strict;
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my $self = {};
bless($self,$class);
return $self;
}
1;