#!/usr/bin/env perl
use strict;
use warnings;
sleep(int(rand(10) + 5));
print "42\n";
####
#!/usr/bin/env perl
use strict;
use warnings;
use Time::HiRes qw(time sleep);
my $cmd = "./meaningoflifetheuniverseandeverything.pl";
my $cycletime = 10;
while(1) {
my $starttime = time;
`$cmd`;
my $endtime = time;
my $timetaken = $endtime - $starttime;
if($timetaken >= $cycletime) {
print "Immediate restart\n";
next;
}
my $sleeptime = $cycletime - $timetaken;
print "Sleeping for $sleeptime\n";
sleep($sleeptime);
}
##
##
Sleeping for 0.986798048019409
Sleeping for 4.98646092414856
Sleeping for 3.98296499252319
Immediate restart
Immediate restart
Immediate restart
Immediate restart
##
##
#!/usr/bin/env perl
use strict;
use warnings;
use Time::HiRes qw(time sleep);
my $cmd = "./meaningoflifetheuniverseandeverything.pl";
my $cycletime = 10;
while(1) {
my $endtime = time;
my $sleeptime = $cycletime - ($endtime % $cycletime) - 1;
if($sleeptime) {
print "Sleeping for $sleeptime\n";
sleep($sleeptime);
}
`$cmd`;
}
##
##
Sleeping for 9
Sleeping for 5
Sleeping for 9
Sleeping for 6
Sleeping for 6
Sleeping for 7
##
##
my $TAIoffset = -37;
...
my $endtime = time + $TAIoffset;