my $tools = new TOOLS; $tools->SUPER::Callme(); # it should call the AGENT::Callme $tools->Callme(); #### package TOOLS; sub new { my ($package) = @_; my $self = $package->SUPER::new(); # do other stuff, or remove this whole sub if # you're not acutally doing anything in this # method and let AGENT's new() method do all the work. return $self; } sub Callme { my ($self) = @_; $self->SUPER::Callme(); # do stuff. }