Notepad++ не печатает на консоль из сценария perl
У меня есть следующий скрипт на 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;
инструкция (что делает блокнот ++ обрабатывать горячей), а затем описанная проблема решена.
1 ответ
Вы можете использовать Run Menu из Notepad++ для прямого запуска Perl-файла.
1. Перейти к Run
2. Введите C:\strawberry\perl\bin\perl.exe "$(FILE_NAME)" или укажите путь к файлу perl exe.
3. Нажмите Сохранить
4. Назначьте ярлык.
и это сделано.
Но Консоль закрывается довольно быстро с этим способом, так что добавьте
[system("pause");] (удалить [] фигурные скобки) код в вашем Perl-файле в конце строки, чтобы показать сообщение "print any key to continue" в консоли.
Надеюсь это поможет