sub current_balance {
my $self = shift;
if (@_) {
my $new = shift;
croak "not a number"
unless Scalar::Util::looks_like_number($new);
$self->{current_balance} = $new;
}
return $self->{current_balance};
}
####
has current_balance => (is => 'rw', isa => 'Num');
##
##
package DebuggingDB;
use Moose;
foreach my $method (qw/select insert update delete/)
{
before $method => sub { warn "$method was called" };
}
##
##
package DebuggingDB;
use Moose::Role;
foreach my $method (qw/select insert update delete/)
{
before $method => sub { warn "$method was called" };
}
##
##
use Moose::Util qw/apply_all_roles/;
apply_all_roles('DB', 'DebuggingDB') if $ENV{DEBUG};
##
##
my $accounts = DB->new(...);
my $marketing = DB->new(...);
use Moose::Util qw/apply_all_roles/;
apply_all_roles($marketing, 'DebuggingDB') if $ENV{DEBUG};