in reply to Automating File Rotation

To "not really want to read in the time every x seconds" sounds like a unnecessary and valueless optimization to me, since you were talking about doing this at most every minute. In addition to that, if you want to use a formatted date -- and by formatted, I mean anything other than a number of seconds -- you have to figure out how to convert a number of seconds into year, month, ..., second.

If you insist:

our $SLEEP_SECS = 5; # Wake up every 5 seconds. our $GET_TIME_SECS = 2*60; # Resync $time every 2 minutes. my $time = time; my $sleep_count = 0; { ... do stuff that doesn't take too long ... sleep($SLEEP_SECS); if (++$sleep_count * $SLEEP_SECS >= $GET_TIME_SECS) { $time = time; $sleep_count = 0; } else { $time += $SLEEP_SECS; } redo; # loop back to start }

That code falls apart if any signals wake up sleep()