- RU.PERL ----------------------------------------------------------- RU.PERL - Msg : #2557 [500] От : Roman V Tchemisov 2:5020/400 12 февраля 04, 03:24 Кому : Sergey Leschenko 14 февраля 04, 22:52 Тема : Re: Пауза в программе ------------------------------------------------------------------------------- From: "Roman V Tchemisov"Sergey Leschenko сообщил в новостях следующее: > > Hужно сделать задержку в программе. > > Скрипт запускается в 02:29:00, выполняет подготовительные действия. После > > этого нужно > > сделать паузу до 02:29:50. Затем поработать до 02:30:10 и после этого > > завершить работу. > > > > Я ничего лучше: > > > > while ((localtime)[2].(localtime)[1].(localtime)[0] < '022950') {} > > например, такой вариант: > > use Time::Local; > $wakeup = timelocal(50, 29, 2, ... ); > sleep($wakeup - time()); > ... А откуда мне брать значения дня, месяца и года для timelocal? Т. е. я, конечно, знаю где их взять, но не слишком ли всё сложно получается? Как мне быть со вторым циклом (который должен работать с 02:29:50 до 02:30:10? Сейчас он выглядит примерно так: while ((localtime)[2].(localtime)[1].(localtime)[0] < '023010') { #здесь идут какие-то операции #а именно работа через LWP с HTTP-сервером } Проблема в том, что если в 02:30:10 (время, когда цикл должен закончить работу) программа ожидает ответа от HTTP-сервера, никакого завершения цикла не происходит. Получается бесконечный цикл. --- ifmail v.2.15dev5.3 * Origin: Golden Telecom (2:5020/400)