Notepad ++和Perl,End STDIN。控制台中的Ctrl + Z不起作用

时间:2014-02-21 05:42:03

标签: perl notepad++

**标题原文说Ctrl + D

我已将perl设置为在Notepad ++中执行和运行。

这是执行命令:

NPP_SAVE
cd "$(CURRENT_DIRECTORY)"
C:\strawberry\perl\bin\perl "$(FILE_NAME)"

我正在尝试通过STDIN读取列表的示例,但我无法结束输入,因为CTRL + Z似乎不能在Notepad ++的控制台中工作。我按下它没有任何反应,它不会继续程序,或结束。我最终不得不终止。

这是我正在运行的代码

#!perl

use warnings;
use strict;

my @list_of_strings = <STDIN>;

@list_of_strings = reverse @list_of_strings;

print @list_of_strings;

2 个答案:

答案 0 :(得分:2)

http://sourceforge.net/p/notepad-plus/discussion/482781/thread/db271da3/

  

当您的程序正在执行时按F6(再次),在字符串“退出消息”中键入EOF的ASCII代码&lt; ALT&GT + LT; 26&GT;然后按“发送”按钮。

我不完全确定这意味着什么,并且没有窗口可以尝试,但这是谷歌搜索“notepad ++ console end of file”的第一个命中。

答案 1 :(得分:1)

在Windows cmd shell中,我使用Ctrl-Z作为文件结尾,同时从STDIN读取,所以听起来这也适用于你。当然,假设您在通过Notepad ++执行时有一些提示输入。

否则,您可以使用菱形运算符,这样您就可以通过文件插入调试输入。菱形运算符使用 STDIN和文件内容,具体取决于@ARGV是否为空,功能相同,非常适合调试目的。

您的脚本可能只是

print reverse <>;

这将允许您将其应用于文件以及STDIN。即:

C:\strawberry\perl\bin\perl "$(FILE_NAME)" "$(INPUT_FILE)"

或者您可以修改程序以直接添加测试输入文件:

@ARGV = "input.txt";

这将完全像您将文件名作为参数提供给程序。