【问题标题】:Perl with Sublime Text 2: <STDIN> not working带有 Sublime Text 2 的 Perl:<STDIN> 不起作用
【发布时间】:2014-03-27 01:14:45
【问题描述】:

我是 Perl 的新手,正在尝试编写一个提示用户输入数字的简单程序。然后我希望打印该号码。我想我有正确的代码,但是当我运行程序时,我无法输入任何内容。我正在使用 Sublime Text 2。我是否缺少插件或其他东西?我怎样才能让它工作?在此之前我只做了简单的 if/else 语句,一切正常。我似乎无法提示用户输入。

代码如下:

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

这是输出:

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

【问题讨论】:

  • 这似乎是 Sublime 控制台的更多问题。你可以在shell中运行你的程序吗? (Windows 上的 cmd.exe)

标签: perl sublimetext2 stdin


【解决方案1】:

据此 - 非常相似 - Python 问题:“Sublime Text 2 console input” - Sublime Text 不支持 STDIN 输入。也确认here

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

  1. 在 Sublime 之外的 shell 中运行你的程序。在 Windows 上,只需将您的 Perl 脚本保存为 c:\your_directory\your_subdir\your_perl_script.pl ;打开命令解释器 ("Start"=&gt;"Run"=&gt;"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

【讨论】:

  • 另外,一个单独的 Java 解决方案,但乍一看似乎不能移植到其他语言:stackoverflow.com/questions/15289352/…
  • 真的希望我能在 Sublime Text 2 中做到这一点,但我让它在命令提示符下工作。感谢您的帮助。
【解决方案2】:

记得加一个“;”在 perl 代码的最后一行。

然后:工具->构建新系统->

{
    "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->key building-user->

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

享受编程。

【讨论】:

    猜你喜欢
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    相关资源
    最近更新 更多