如何在我的perl脚本中让Eclipse / EPIC停止警告“使用未初始化的值$ ENV {whatever}”?

时间:2011-06-03 15:44:12

标签: eclipse perl warnings initialization

这出现在Eclipse文本编辑器中,EPIC第一次在Perl脚本中遇到特殊的%ENV变量。 我没有在这种环境中运行任何东西,我只是希望警告消失。

我在“运行配置”部分中徘徊,但这似乎没有帮助。

更新1:所有这些答案都是关于更改代码的,这不是必需的。是的,如果我取消设置环境变量,我可以在命令行上发生同样的错误。但我想在Eclipse中定义环境变量,以匹配正常的命令行环境,以便不会发生警告。我已经尝试在Eclipse的“运行配置”中定义它,但它似乎没有生效。

我还尝试在〜/ .bashrc和相关位置设置变量,并为Eclipse创建一个设置变量的启动脚本。这些都没有修复警告。

我可以通过右键单击并选择“Source”然后选择“Clear All EPIC Markers”来使警告消失,但下次更改文件时会再次出现警告。

更新2:如果我在运行配置中定义了环境变量,然后运行脚本,它就会超过这些行。但是,当我正在编辑时,文本编辑器窗格中仍然会出现波浪形的红色下划线和警告 - 这就是我想要摆脱的警告。

4 个答案:

答案 0 :(得分:4)

当启用警告并尝试使用未定义的值时,在任何其他上下文中也会发生这种情况。

$ perl -we 'print $ENV{NOT_DEFINED}'
Use of uninitialized value in print at -e line 1.

有些解决方案

(1)在使用之前定义变量

$ perl -we '$ENV{NOT_DEFINED} //= ""; print $ENV{NOT_DEFINED}'

(2)使用||//运算符替换"默认"变量的值

$ perl -we 'print $ENV{NOT_DEFINED} // ""'

(3)禁用特定警告

$ perl -we 'no warnings "uninitialized"; print $ENV{NOT_DEFINED}'

(4)禁用所有警告

$ perl -we 'no warnings; print $ENV{NOT_DEFINED}'

(不要做#4)。

由于这是Perl,还有其他几种方法可以做到。

在Perl< = v5.8中,您必须使用||||=代替////=,这会产生一些微妙的不同行为。

答案 1 :(得分:0)

在启动之前定义环境变量或修复代码,使其不发出警告。如果您包含整个警告,以便读者知道它的来源,您可能会得到更多有用的建议。

答案 2 :(得分:0)

实际上我认为目前无法做到这一点,请参阅此feature requestforum post

答案 3 :(得分:-1)

不确定这是否有帮助,但请尝试添加:

our %ENV

......首次使用%ENV之前。

[编辑:我假设实际 的相关环境变量已定义,并且此错误来自IDE。第二个想法,也许这是一个糟糕的假设。]

相关问题