use strict; use warnings; my $fudgefactor = 0.01; while (1) { my $nextsecond = int time + 1; select(undef, undef, undef, $nextsecond - time - $fudgefactor); 1 while time < $nextsecond; printf "%.6f\n", time; } #### 1579973997.000000 1579973998.000000 1579973999.000000 1579974000.000000 1579974001.000000 ^C