Perl par-packer exe-файл sleep () не работает

hello.pl - это файл, который отлично работает:

print "Hello World";
sleep(5);

Когда я конвертирую это в hello.exe с помощью par-packer, окно будет спать в течение 5 секунд, но не будет печатать «Hello World», которое фактически печатается через 5 секунд и окно закрывается.

Любое решение приветствуется. Я хочу, чтобы печать отображалась в течение 5 секунд.


person SSh    schedule 11.07.2015    source источник
comment
STDOUT->autoflush(); perl.plover.com/FAQs/Buffering.html   -  person mpapec    schedule 11.07.2015
comment
Здорово! это сработало. Спасибо   -  person SSh    schedule 11.07.2015


Ответы (1)


Это было бы проблемой очистки буфера до STDOUT. Вы можете вручную очистить перед сном с помощью

STDOUT->flush() # a specific instance of $filehandle->flush()

или вы можете попросить, чтобы дескриптор этого файла был автоматически сброшен для вас.

STDOUT->autoflush(1);

Также вы можете отключить это с помощью 0 в качестве параметра.

Наконец, есть менее удобочитаемая специальная переменная $|, которой вы можете присвоить 1, если вы делаете какой-то однострочный код или играете в гольф.

person dlamblin    schedule 11.07.2015