【问题标题】:How do I get Eclipse/EPIC to stop warning about "Use of uninitialized value $ENV{whatever}" in my perl script?如何让 Eclipse/EPIC 在我的 perl 脚本中停止警告“使用未初始化的值 $ENV{whatever}”?
【发布时间】:2011-06-03 15:44:12
【问题描述】:

当 EPIC 第一次遇到在 Perl 脚本中使用特殊的 %ENV 变量时,它会出现在 Eclipse 文本编辑器中。 我没有在这个环境中运行任何东西,我只是想让警告消失。

我在“运行配置”部分摆弄了一下,但这似乎没有帮助。

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

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

我可以通过右键单击并选择“源”然后选择“清除所有 EPIC 标记”使警告消失,但下次更改文件时会再次出现警告。

更新 2:如果我在运行配置中定义环境变量,然后运行脚本,它可以通过这些行。但是,在我编辑时,文本编辑器窗格中仍然会显示一条波浪状的红色下划线和一条警告——这是我想要删除的警告。

【问题讨论】:

    标签: eclipse perl warnings initialization


    【解决方案1】:

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

    $ 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 || 和 ||= 而不是 ////=,它们的行为略有不同。

    【讨论】:

    • 或将$var // "default" 替换为defined($var) ? $var : "default",这...嗯,我猜想是更微妙的不同,但实际上是相同的。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      其实我相信这目前是不可能的,看这个feature requestforum post

      【讨论】:

        【解决方案4】:

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

        our %ENV
        

        ...在第一次使用 %ENV 之前。

        [编辑:我假设相关的环境变量实际上是定义的,这个错误来自IDE。再想一想,也许这是一个糟糕的假设。]

        【讨论】:

          猜你喜欢
          • 2011-03-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多