in reply to Event Driven - timer

You could use alarm and a signal handler.

#!/usr/bin/perl # use strict; use warnings; use Data::Dumper; $SIG{ALRM} = sub { print "printing from within sub routine\n"; alarm(1); }; alarm(1); while(1) { print "main loop proceeding\n"; sleep(1); }

produces:

main loop proceeding printing from within sub routine main loop proceeding printing from within sub routine main loop proceeding printing from within sub routine main loop proceeding printing from within sub routine main loop proceeding printing from within sub routine main loop proceeding

Note: you don't need the sleep in the main loop. You will, no doubt, have better things to do.