PERL: БИБЛИОТЕКА ПРОГРАММИСТА


PERL: БИБЛИОТЕКА ПРОГРАММИСТА - стр. 112


select(undef    undef    undef,   $time_to_sleep) где $time_to_sleep — длительность паузы.

Некоторые системы не поддерживают select с четырьмя аргументами. В моду­ле Time::HiRcs присутствует функция sleep, которая допускает длину паузы с плавающей точкой:

use Time HiRes qw(sleep), sleep($time_to_sleep),

Комментарий

Следующий фрагмент демонстрирует применение функции select. Он пред­ставляет собой упрощенную версию программы из рецепта 1.5. Можете рассмат­ривать его как эмулятор 300-бодного терминала:


110   Глава 3 • Дата и время

while (о) {

select(undef, undef undef, 0 25)

print, }

С помощью Timc::HiRes это делается так:

use Time HiRes qw(sleep) while (о) {

sleep(0 25)

print, >

> Смотри также--------------------------------------

Документация по модулям Time.:HiRcs и BenchMark с CPAN; описание функ­ций sleep и select в perlfunc(i). Функция select использована для организа­ции короткой задержки в программе slowcat из рецепта 1.5.

3.11. Программа: hopdelta

Вы никогда не задавались вопросом, почему какое-нибудь важное письмо так долго добиралось до вас? Обычная почта не позволит узнать, как долго ваше письмо пылилось па полках всех промежуточных почтовых отделений. Однако в электронной почте такая возможность имеется. В заголовке сообщения присут­ствует строка Received: с информацией о том, когда сообщение было получено каждым промежуточным транспортным агентом.

Время в заголовках воспринимается плохо. Его приходится читать в обрат­ном направлении, снизу вверх. Оно записывается в разных форматах по прихоги каждого транспортного агента. Но хуже всего то, что каждое время регистрирует­ся в своем часовом поясе. Взглянув на строки "Tue, 26 May 1998 23 57.38 -0400" и "Wed, 27 May 1998 05.04.03 +0100", вы вряд ли сразу поймете, что эти два момента разделяют всего 6 минут 25 секунд.

На помощь приходят функции ParseDate и DateCalc модуля Date::Manip от CPAN:

use Date    Mamp qw(ParseDate DateCalc)




- Начало -  - Назад -  - Вперед -