use Event; use Event::Stats; Event::Stats::enforce_max_callback_time(1); sub callback { for (1..int(rand(999))) { alarm(10); sleep 2;#relatively long running tast }; }; $Event::DIED = sub { Event::verbose_exception_handler(@_); Event::unloop_all(); }; # just die Event->idle(min=>1,max=>2,cb=> \&callback,max_cb_tm=>10,); Event::loop();