这出现在Eclipse文本编辑器中,EPIC第一次在Perl脚本中遇到特殊的%ENV变量。 我没有在这种环境中运行任何东西,我只是希望警告消失。
我在“运行配置”部分中徘徊,但这似乎没有帮助。
更新1:所有这些答案都是关于更改代码的,这不是必需的。是的,如果我取消设置环境变量,我可以在命令行上发生同样的错误。但我想在Eclipse中定义环境变量,以匹配正常的命令行环境,以便不会发生警告。我已经尝试在Eclipse的“运行配置”中定义它,但它似乎没有生效。
我还尝试在〜/ .bashrc和相关位置设置变量,并为Eclipse创建一个设置变量的启动脚本。这些都没有修复警告。
我可以通过右键单击并选择“Source”然后选择“Clear All EPIC Markers”来使警告消失,但下次更改文件时会再次出现警告。
更新2:如果我在运行配置中定义了环境变量,然后运行脚本,它就会超过这些行。但是,当我正在编辑时,文本编辑器窗格中仍然会出现波浪形的红色下划线和警告 - 这就是我想要摆脱的警告。
答案 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 request和forum post
答案 3 :(得分:-1)
不确定这是否有帮助,但请尝试添加:
our %ENV
......首次使用%ENV之前。
[编辑:我假设实际 的相关环境变量已定义,并且此错误来自IDE。第二个想法,也许这是一个糟糕的假设。]