У меня есть следующий скрипт на Perl:
print "test: ";
my $input = <>;
print "result: ", $input;
Я сделал команду NppExec в Notepad++:
NPP_SAVE
perl "$(CURRENT_DIRECTORY)\$(FILE_NAME)"
Когда я запускаю эту команду, она выдаст:
Process started >>>
hello
test: result: hello
<<< Process finished. (Exit code 0)
что крайне неуместно, потому что он не печатает, пока не получит весь ввод. Любой совет?
РЕДАКТИРОВАТЬ:
Я нашел ответ, в конце концов. Консоль Notepad++ не является терминальной, поэтому STDOUT не находится в режиме буферизации строки. Когда я начинаю сценарий с
$| = 1;
инструкция (что делает блокнот ++ обрабатывать горячей), а затем описанная проблема решена.