#! perl
use strict;
use warnings;
use constant
{
DELAY => 10,
EXPIRY => 3600,
MARGIN => 300,
};
my $time = time;
my $expiry = $time + EXPIRY;
while ($time + MARGIN < $expiry)
{
my $previoustime = $time;
warn $time;
sleep DELAY + $previoustime - $time
unless $time - $previoustime >= DELAY;
$time = time;
}
####
16:17 >perl 1453_SoPW.pl
1447741073 at 1453_SoPW.pl line 18.
1447741083 at 1453_SoPW.pl line 18.
1447741093 at 1453_SoPW.pl line 18.
1447741103 at 1453_SoPW.pl line 18.
1447741113 at 1453_SoPW.pl line 18.
...
####
( $time - $previoustime >= 10
or sleep (10 + $previoustime - $time)
)