在IntelliJ Idea

时间:2016-10-06 04:51:34

标签: perl intellij-idea strawberry-perl

我尝试使用IntelliJ Idea来处理perl script。我为IDEA安装了perl plugin以及为Windows安装了Strawberry Perl

语法突出显示和其他功能有效,但这是当我尝试运行程序时会发生的事情:

Running the Program

我是perl的初学者,所以我仍然只使用命令行内容和ASCII图形。我希望简单地在IntelliJ中运行,测试和调试我的perl程序,但print语句在perl运行时不会在此对话框中放置任何内容...

我仍然可以在上面的光标所在的图像中键入内容,输入错误的内容可能会抛出错误。所以<STDIN>似乎已正确映射,但<STDOUT>不是?或者是其他错误?

如果我将它显示的命令复制到cmd,那么它可以完美地运行:

Mancala working

那么有没有办法在这个对话框中配置intellij来获取<STDOUT>?任何帮助将不胜感激。

现在,按照Chankey的回答,我已经制作了一个测试脚本,并且该脚本有效:

Test.pl working

也许问题是我从外部源导入了perl文件,而IntelliJ没有意识到它是一个脚本,或类似的东西?但是,如果我将代码复制到新文件中,它也不起作用......

test.pl有一个区别:use warnings FATAL => 'all';而不是use warnings;。当我尝试这个时,它一直有效,直到我输入一个需要数字输入的字符串,然后在退出程序时打印出它应该一直打印的一大堆:

Some of the output shown now

同样,输出在cmd中工作正常,所以我认为这是IntelliJ的一个问题。有任何想法吗?也许@符号会产生问题?别的什么?如果有人将IDEA用于Windows并希望使用我的代码,那么github就可以使用它。

2 个答案:

答案 0 :(得分:2)

对我来说很好。以下是步骤:

  1. 创建项目
  2. 右键点击项目并选择New,然后选择Perl5 file
  3. 为文件命名,然后从下拉列表中选择Script
  4. 编写脚本,保存
  5. CTRL+SHIFT+F10
  6. 提供一些数据作为用户输入,然后按Enter
  7. 输出:

    enter image description here

    如果它仍然不起作用,那么您可能没有正确设置Perl。

    转到File->Project Structure并将perl添加到Project SDK

    enter image description here

    根据您的屏幕截图,我可以看到您使用absolute path作为perl.exe。这意味着您尚未向perl添加PATH。这似乎是IntelliJ没有找到它来执行你的脚本的问题。

    待办事项

    set PATH=C:\Strawberry\perl\bin;%PATH%
    

    如果这也没有为您解决问题,请浏览wiki page of Camelcade plugin。作者已经提供了有关如何设置此插件的分步说明。

答案 1 :(得分:0)

尝试添加:

$| = 1;

...到你的脚本的顶部。 Perl缓冲区stdout,添加$| = 1;会导致缓冲区立即刷新,并应显示IntelliJ调试控制台中print语句的输出。

另见:

  

perl $|=1; What is this?