The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Perl ненормально работает с командой sleep, !*! Vovchik, 19-Июн-04, 12:34  [смотреть все]
Почему на шеле нормально sleep работает, а на перле непонятно как?
Может я чего не понимаю?

Вот это работает правильно:
--------------------------------------------------------
#!/bin/sh

m=10
s=0
while [ $m -ge 0 ]
do
    let s=$s-1
    if [ $s -lt 0 ]; then let s=59; let m=$m-1; fi
    if [ $s -lt 10 ]; then s1="0$s"; else s1=$s; fi
    if [ $m -lt 10 ]; then m1="0$m"; else m1=$m; fi
    echo -en "$m1:$s1\b\b\b\b\b"
    sleep 1
done
echo
--------------------------------------------------------

А вот это же на перле, ждет незнамо чего:
--------------------------------------------------------
#!/usr/bin/perl

$m=10; $s=0;
do {
    printf "d:d%s", $m, $s, "\b"x5;
    sleep 1;
    $s--;
    if ($s<0) { $m--; $s=59; }
} while (not $m<0);
printf "\n";
--------------------------------------------------------
Без слипа работает...

Похожая проблема у меня с процессами.
Вот, например:
--------------------------------------------------------
#!/usr/bin/perl

open (PING, "tcpdump |");
while (<PING>) {
    if (/(\d\d:\d\d:\d\d).\S*\s(\S*) > (\S*):/) {
        print "$1 - $2 > $3\n";
    }
}
--------------------------------------------------------
Выдает строки както порциями, и, если трафик небольшой, может выдать за раз данные за несколько секунд...
Выводит всё, но не вовремя...
Как сделать так, чтобы не было этих задержек с выводом...

Может где в настройках проблема?

У меня ASPLinux 7.3 и RH 7.2




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру