while( tenSecondsHasPassed() ){ doStuff(); } sub tenSecondsHasPassed { my $newtime = time; my $diff = $newtime - $lasttime; ... ## if expired "end loop" ## if not ten seconds, sleep to make it ten seconds ## if expired "end loop" ## otherwise continue looping }