package Controller; use Moose; has view => (is => 'ro', isa => 'View', required => 1); has model => (is => 'ro', isa => 'Model', required => 1); sub index { } sub inc { my $self = shift; $self->model->inc } sub dec { my $self = shift; $self->model->dec } sub reset { my $self = shift; $self->model->reset } sub set { my $self = shift; $self->model->set($_[1]) } around [qw(index inc dec set reset)] => sub { my $orig = shift; my $self = shift; $self->$orig(@_); return $self->view->render($self->model->count); }; __PACKAGE__->meta->make_immutable; 1;