#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11111868 use warnings; use Time::HiRes qw( time sleep ); my $fudgefactor = 0.01; while(1) { my $nextsecond = int time + 1; sleep $nextsecond - time - $fudgefactor; 1 while time < $nextsecond; printf "%.6f\n", time; }