Perl与Sublime Text 2:<stdin>不工作</stdin>

时间:2014-03-27 01:14:45

标签: perl sublimetext2 stdin

我是Perl的新手,我正在尝试编写一个简单的程序,提示用户输入一个数字。然后我想要打印这个号码。我想我有正确的代码,但是当我运行该程序时,我无法输入任何内容。我使用Sublime Text 2.我错过了一个插件还是什么?我如何让它工作?我之前只做了简单的if / else语句,一切正常。我似乎无法提示用户输入。

以下是代码:

print ("Please enter a number: \n");
$seq = <STDIN>;
print("Sequence = $seq \n");

这是输出:

在连接(。)中使用未初始化的值$ seq或在C:\ blah \ blah \ practice.pl第3行使用字符串。
请输入一个数字:
序列=
[完成0.4秒]

2 个答案:

答案 0 :(得分:4)

根据这个 - 非常相似 - Python问题:&#34; Sublime Text 2 console input&#34; - Sublime Text不支持STDIN输入。确认here

您可以通过以下两种方式之一解决这个问题:

  1. 在shell中运行Sublime之外的程序。在Windows上,只需将Perl脚本保存为c:\your_directory\your_subdir\your_perl_script.pl;打开命令解释器("Start"=>"Run"=>"cmd.exe")并在解释器中的c:\提示符下运行:

    c:\your_directory\your_subdir\your_perl_script.pl
    

    或者如果您在安装Perl时没有将.pl扩展名与Perl关联,

    perl c:\your_directory\your_subdir\your_perl_script.pl
    
  2. 按照链接的SO问题的答案并使用SublimeREPL

  3. 使用Terminal plugin

答案 1 :(得分:0)

请务必添加“&lt;&gt ;;”在你的perl代码的最后一行。

然后:tools-&gt;构建新系统 - &gt;

{
    "cmd": ["perl","$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.perl",
    "variants":
    [
        {
            "name": "RunInCommand",
            "shell": true,
            "cmd": ["start", "perl","${file_base_name}.pl"]
        }
    ]
}

现在,如果要使用快捷键(例如“F5”)运行perl代码, 你可以添加一个:preferences-&gt; key buildings-user-&gt;

[
    {"keys": ["f5"], "command": "build", "args": {"variant": "RunInCommand"}}
]

享受编程。