use warnings; use strict; use Async::Event::Interval; my $event = Async::Event::Interval->new( 1, # interval, in seconds sub { print "event...\n"; }, ); $event->start; sleep 1; # wait for first event to fire print "main is going to sleep...\n"; sleep 5; print "done\n"; #### event... main is going to sleep... event... event... event... event... event... done #### $ ps ax | grep 22834 22834 pts/2 S+ 0:00 perl t/evt.pl #### $ps ax | grep 22732 22732 pts/2 Z+ 0:00 [/home/spek/repo]