Main program (using properly setup object): $moduleObject->findBestEvidence( $variable ); Module: package Module; sub new { my $class = shift; my $self = { 'param' => "value", }; bless($self, $class); return $self; } sub findBestEvidence { my $var = shift; $stew = "Whatever"; } 1; Undefined subroutine &Module::findBestEvidence ....