#server calls method runProgram from class Tool dispatch_to(Tool::runProgram), etc... #method runProgram calls getSeq and runTool from classes ExSeq and BioTools respectively package Program; use ExSeq; use BioTools; sub runProgram{ shift; my $ids = shift; my $exSeqObj = ExSeq->new(); my $file = $exSeqObj->getSeq($ids); my $bioToolsObj = BioTools->new(); my $hashref = $bioToolsObj->runTool($file); } #method runTool calls run from Class Bio in Class Test package Test; use Bio; sub runTool{ shift; my $file = shift; my $testObj = Bio->new(); my $thingy = $testObj->run($file); }