автозапуск вопроса - PullRequest
       31

автозапуск вопроса

3 голосов
/ 16 февраля 2011

Я нашел нечто подобное в куске кода:

use IO::Handle;
autoflush STDOUT 1;
print '';

Является ли целью "print" очистить возможно заполненный буфер?

Ответы [ 2 ]

6 голосов
/ 16 февраля 2011

print вызывает немедленный вывод всего текста в буфере (из предыдущих отпечатков).Код в основном отключает буферизацию и очищает все.

2 голосов
/ 16 февраля 2011

print вызов должен быть потерянным системным вызовом.perlvar гласит: «При значении, отличном от нуля, принудительная очистка выполняется сразу после каждой записи или печати на выбранном в данный момент выходном канале».Код в этом примере должен включить автозапуск, вызывая сброс, затем добавить примечание в буфер STDOUT и вызвать сброс.Может быть другая причина для печати, но я предполагаю, что первоначальный автор кода сделал то же самое предположение, что и bvr, что в буфере останутся данные после вызова autoflush, которые необходимо будет сбросить.

...