package Foo; sub _my_private_method { ... }; # we can just call it as a subroutine, then no matter # what methods the subclass define we're okay. sub my_public_method1 { my $self = shift; ... _my_private_method($self); ... }; # We can also root the method call in the current # class sub my_public_method2 { my $self = shift; ... $self->Foo::_my_private_method; ... };