This 'bug' was found tracking down a problem I had with interval timers getting off track in the Event module. (This occurred under the Cygwin environment on a Windows 98 machine.)
PCs are terrible time keepers. It seems that under heavy load, the clock can continually loose time. On my laptop, I run an NTP client every 5 minutes to compensate for this. Doing so then causes problems with Time::HiRes. Whereas Perl's core time() function picks up on the NTP clock adjustments, Time::HiRes::time() does not.
To see this, run the following test script.
#!/usr/bin/perl
use strict;
use warnings;
use Time::HiRes;
while (1) {
print("Core : ", scalar localtime(), "\n");
print("HiRes: ", scalar localtime(Time::HiRes::time), "\n\n");
sleep(10);
}
Then adjust your PC's clock. You'll see that the 'Core' time picks up the adjustment, but the HiRes time does not.