我尝试使用IntelliJ Idea来处理perl script。我为IDEA安装了perl plugin以及为Windows安装了Strawberry Perl。
语法突出显示和其他功能有效,但这是当我尝试运行程序时会发生的事情:
我是perl的初学者,所以我仍然只使用命令行内容和ASCII图形。我希望简单地在IntelliJ中运行,测试和调试我的perl程序,但print
语句在perl运行时不会在此对话框中放置任何内容...
我仍然可以在上面的光标所在的图像中键入内容,输入错误的内容可能会抛出错误。所以<STDIN>
似乎已正确映射,但<STDOUT>
不是?或者是其他错误?
如果我将它显示的命令复制到cmd,那么它可以完美地运行:
那么有没有办法在这个对话框中配置intellij来获取<STDOUT>
?任何帮助将不胜感激。
现在,按照Chankey的回答,我已经制作了一个测试脚本,并且该脚本有效:
也许问题是我从外部源导入了perl文件,而IntelliJ没有意识到它是一个脚本,或类似的东西?但是,如果我将代码复制到新文件中,它也不起作用......
test.pl有一个区别:use warnings FATAL => 'all';
而不是use warnings;
。当我尝试这个时,它一直有效,直到我输入一个需要数字输入的字符串,然后在退出程序时打印出它应该一直打印的一大堆:
同样,输出在cmd中工作正常,所以我认为这是IntelliJ的一个问题。有任何想法吗?也许@符号会产生问题?别的什么?如果有人将IDEA用于Windows并希望使用我的代码,那么github就可以使用它。
答案 0 :(得分:2)
对我来说很好。以下是步骤:
New
,然后选择Perl5 file
Script
CTRL+SHIFT+F10
Enter
输出:
如果它仍然不起作用,那么您可能没有正确设置Perl。
转到File->Project Structure
并将perl添加到Project SDK
。
根据您的屏幕截图,我可以看到您使用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
语句的输出。
另见: