#! perl -slw use strict; use Time::HiRes qw[ time sleep ]; my $next = time() + 0.5; while( 1 ) { sleep .001 while time() < ( $next - 0.01 ); 1 while time() < $next; printf "%10.4f\n", time(); $next += 0.5; } __END__ c:\test>849367 1279056441.7570 1279056442.2570 1279056442.7570 1279056443.2570 1279056443.7570 1279056444.2570