$|= 1; my $i; my $start_time = time; my $period = 60; while (1) { print time, "\n"; my $next_sleep = ($start_time + $period * ++$i) - time; sleep $next_sleep; }