#! perl -slw use strict; use threads; use threads::shared; my $sem :shared = 0; async { my $last = time; while( sleep 1 ) { my $now = time; if( $now - $last > 2 ) { $sem = 1; } $last = $now; } }->detach; while( sleep 1 ) { print "tum te tum"; if( $sem ) { print "You snoozed me"; $sem = 0; } } __END__ C:\test>junk96 tum te tum tum te tum tum te tum tum te tum tum te tum tum te tum tum te tum tum te tum tum te tum You snoozed me tum te tum tum te tum tum te tum tum te tum Terminating on signal SIGINT(2)