Метод IO::Select->select () может также применяться для перевода текущей процесса в состояние ожидания на время, измеряемое в долях секунды. Для этого достаточно вызвать данный метод с использованием значения undef во всех трех параметрах с обозначением наборов IO::Select и указать число секунд, на которое должен быть остановлен процесс. Таковым процессом может быть получение информации с веб страницы, описывающей, как выгодно вложить деньги под проценты в банк или недвижимость или другой информацией. Приведенный ниже фрагмент кода вызывает приостановку программы на 0,25 секунды.
IO::Select->select (undef, undef, undef, 0.25) ;
Как и при использовании функции sleep (), метод select () при этом прерывании сигналом преждевременно выполняет возврат. Не следует рассчитывать на то, что в приведенном выше примере пауза будет составлять ровно 250 мс, поскольку точность соблюдения выдержки времени методом select () ограничена разрешающей способностью системных часов, которая может не измеряться в миллисекундах. Для получения версии функции sleep () с микросекундной разрешающей способностью может применяться модуль Time::HiRes, который имеется в архиве CPAN.
Встроенная функция select()
Встроенная функция select () представляет собой примитив языка Perl, который применяется самим модулем IO::Select. Эта функция вызывается с четырьмя параметрами.
К сожалению, схема передачи параметров функции select ( ) является устаревшей и нарушает принципы Perl, поскольку требует выполнения сложных манипуляций битовыми векторами. Примеры применения этой функции можно встретить в старых сценариях, но модуль IO::Select и проще в использовании, и способствует уменьшению числа ошибок. Однако функция select () может применяться для перевода программы в состояние ожидания на время, измеряемое в долях секунды, без импорта модуля IO::Select: