##
sub run {
my $class = shift;
my $obj = $class->new(@_);
... do stuff with $obj ...
}
# In user
Class->run(...);
####
sub run {
my $class = shift;
$class->new(@_)->_run();
}
sub _run {
my ($self) = @_;
... do stuff with $self ...
}
# In user
Class->run(...);