package MyObj; use Moose; use Common; use namespace::autoclean; use experimental qw{ signatures }; has value => (is => 'ro', required => 1); sub foo($self) { log_warn('Value too large') if $self->value > 10; } __PACKAGE__->meta->make_immutable