##
my $obj = Module->new($log, $arg1, $arg2);
####
my $obj = Module->new($log, %args);
####
sub new {
my $self = shift;
my $log_obj = shift;
my %args = @_;
# do stuff
}
####
sub new {
my $self = bless {}, shift;
$self->{log} = Library->log()->child('This::Module::Name');
my $log = $self->_log()->child('new');
}
sub foo {
my $self = shift;
my $log = $self->_log()->child('foo');
# do fooish type stuff
}
sub _log {
return shift->{log};
}