编辑:

编辑:

我有以下 perl 脚本:

print "test: ";
my $input = <>;
print "result: ", $input;

我在 Notepad++ 中创建了 NppExec 命令:

NPP_SAVE
perl "$(CURRENT_DIRECTORY)\$(FILE_NAME)"

当我运行此命令时,它将产生:

Process started >>>
hello
test: result: hello
<<< Process finished. (Exit code 0)

这是非常不合适的,因为它直到获得所有输入后才会打印。有什么建议吗?


编辑:

我终于找到了答案。Notepad++ 控制台不是终端,因此 STDOUT 不在行缓冲模式. 当我在脚本前面添加

$| = 1; 

指令(这使得 notepad++ 处理热),则所述问题就解决了。

答案1

您可以使用 Notepad++ 中的运行菜单直接运行 Perl 文件。1
. 转到运行
2. 键入 C:\strawberry\perl\bin\perl.exe "$(FILE_NAME)" 或提供 perl exe 文件的路径。3
. 按保存
4. 指定快捷方式。
这样就完成了。
但是控制台用这种方式关闭得非常快,因此请
在 Perl 文件的最后一行添加 [system("pause");](删除 [] 括号)代码,以在控制台中显示“打印任意键以继续”消息。
希望这对您有所帮助

相关内容