[test@test ~]$ perl -we ' package grand_father; use base qw/Class::Accessor::Fast/; sub new { my $class=shift; return $class->SUPER::new(@_); } package father; use base grand_father; sub new { my $self=shift->SUPER::new(@_); return $self; } package son; use base father; package main; use Data::Dumper; print Dumper(son->new);