use 5.008003; use MooseX::Declare; class Thread::Task::Worker extends Thread::Task::Thread { use TryCatch; use MooseX::Types::Moose qw(Object Bool Int ArrayRef); use Thread::Task::Types qw(Handle_T Worker_T Task_T Conduit_T Finished_ET); has hid => ( isa => Int, is => 'rw', predicate => 'has_hid', clearer => 'clear_hid', required => 0, ); method task(ArrayRef $task_array) { require Thread::Task::Handle; my $handle = Thread::Task::Handle->from_array($task_array); try { $handle->started; $handle->run; $handle->stopped; } catch { # trace } return; } } 1;