package AGENT; sub new { .... } sub Callme { .... } 1; #### package TOOLS; use AGENT; sub new : AGENT::new # should initialize the AGENT::new { .... } sub Callme { .... } 1; #### use TOOLS; my $tools = new TOOLS; $tools->SUPER::Callme(); # it should call the AGENT::Callme $tools->Callme();