Hello, This is a working example how it can be achieved. Can it be the right way while MX::POE is not compatible?
#!/usr/bin/perl -w use strict; use MooseX::Declare; class Foo is mutable extends MooseX::POE::Object { BEGIN { Class::MOP::remove_metaclass_by_name(__PACKAGE__); }; use MooseX::POE qw/event/; MooseX::POE->init_meta( for_class => __PACKAGE__ ); has name => ( isa => 'Str', is => 'rw', default => sub { 'Foo ' }, ); has count => ( isa => 'Int', is => 'rw', lazy => 1, default => sub { 0 }, ); sub START { my ($self) = @_; $self->yield('increment'); } event increment => sub { my ($self) = @_; print "Count is now " . $self->count . "\n"; $self->count( $self->count + 1 ); $self->yield('increment') unless $self->count > 3; }; } use POE; Foo->new(); POE::Kernel->run();