1

У меня есть следующий скрипт на 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 ответ1

0

Вы можете использовать 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" в консоли.
Надеюсь это поможет

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .