in reply to so simple

The easiest solution is to not have functions that do double duty as methods. Either don't use objects (probably not reasonable) or don't use normal function calls. Make all your subroutines be methods, then say:
sub some_public_subroutine {
  my $objref = shift;

  #blah blah
  $objref->some_private_sub("arg1", "arg2", "...");

}