http://qs1969.pair.com?node_id=778612


in reply to display stuff based on systemclock

Something like this?

my @mesages = (...); my $pass = 0; for my $message (@messages) { sleep(5) if !$pass++; print($message); }

sleep is interruptible and drift can occur if the loop body is non-trivial, so maybe the following would be better:

use Time::HiRes qw( time sleep ); # Optional sub sleep_until { my ($e_time) = @_; for (;;) { my $dur = $e_time - time; last if $dur <= 0; sleep($dur); } } my @mesages = (...); my $s_time = time; for my $i (@messages) { sleep_until($s_time + 5*$i); print($message); }