#! perl -slw use strict; use Time::HiRes qw[ time sleep ]; my $next = time() + 0.5; while( 1 ) { sleep .001 while time() < $next; printf "%10.3f\n", time(); $next += 0.5; } __END__ c:\test>849367 1279055103.020 1279055103.520 1279055104.020 1279055104.519 1279055105.020 1279055105.520 1279055106.019 1279055106.520 1279055107.020 1279055107.519 1279055108.020 1279055108.519 1279055109.020 1279055109.519 1279055110.020 1279055110.519 1279055111.020 #### #! 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