in reply to How do you sleep?
Given that Time::HiRes is a core module I think one can assume it is generally well supported, so using select(undef, undef, undef, $n) seems to me to be unnecessarily baroque.
You can, of course, use Time::Hires qw(sleep) and magically transform all the sleep in the current package... Or go a stage further and:
and drag your entire program into the 21st Century, if you're feely lucky, modules-wise !use Time::HiRes () ; BEGIN { *CORE::GLOBAL::time = \&Time::HiRes::time ; } ;
However, the limitations of sleep are so well known, that overriding it will probably confuse -- so I favour a small utility module:
...and one can add a little code to check that a given minimum resolution is supported locally. It's then clear that where hsleep is used it isn't standard sleep -- and without all the Time::HiRes:: clutter.package Htime ; use Exporter qw(import) ; our @EXPORT = qw(htime hsleep halarm) ; use Time::HiRes () ; *htime = \&Time::HiRes::time ; *hsleep = \&Time::HiRes::sleep ; *halarm = \&Time::HiRes::alarm ;
|
|---|