use strict; use warnings; use Time::HiRes qw/time sleep/; sub negative_timer { my $max = $_[0]; my @time_test; my $start = time(); for (my $i = 0; $i < $max; $i++) { $start += 1; my $dt = $start - time(); if ($dt > 0) { sleep $dt; $time_test[$i] = time(); } } return @time_test; }