利用perl中的信号机制与alarm函数可以实现定时器
$SIG{ALRM}=sub{ print 'alrm come, now sleep',"\n"; my $j=1; while($j<1000){ print "j:$j\n"; $j++; } sleep 30; print 'alrm exit now go!',"\n"; #exit 1; }; alarm 5; $i=1; while($i){ $i++; print "$i\n"; #sleep 1; } print 'complete';
以上例子会在程序启动5秒后执行函数。
定时器是在主线程中启动的,启动后主线程会阻塞,直到定时器执行完为止