ООП Perl не имеет ничего общего с ООП C++-подобных языков.
Если очень хочется, то можно использовать анонимную функцию как приватный метод и передавать в него $self первым параметром:
package MyClass;
my $private_method = sub {
my $self = shift;
# ...
};
sub public_method {
my $self = shift;
$private_method->($self);
}
Кстати, такой вызов быстрее, чем $object->name.