Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Возврат коретки


Автор: enRai 1.12.2010, 19:07
Здравствуйте! Как заставить адекватно функционировать такой вот скрипт:
Код

#! /usr/bin/perl -w

print "start\n";

for(0..5) {
    
    print "\rLet: $_";
    sleep(1);
}

print "\ndone\n";


При запуске у меня не выводится каждый шаг, только после 5 секунд последняя строка. Если убрать sleep и увеличить для наглядности количество шагов - то все отлично.
Что я делаю не так? Ощущение что баг какой-то...

Автор: ginnie 1.12.2010, 19:26
Уважаемый enRai!

Надо выключить буферизацию вывода в STDOUT:

Код

$| = 1;

Автор: enRai 1.12.2010, 19:28
Огромнейшее спасибо! Заработало!

Автор: alezzz 1.12.2010, 19:58
не баг, буферизация вывода.

В начале программы поставь $|=1; , должно заработать.


smile тормознул я, пока писал сообщение решил проверить, а тут уже ответили.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)