我使用Perl的Encode.pm模块,直接从CPAN下载(我已更新到最新版本2.84,并且它在RHEL上的Perl 5.10.1上运行)。当我使用它,它会发出约111线,115警告和Encode.pm 172看起来像这样:禁用Encode.pm的警告
Use of uninitialized value $name in concatenation (.) or string at /usr/lib64/perl5/Encode.pm line 186.
这是相当令人沮丧,因为该警告似乎是关于Encode.pm东西,而比我的代码,我真的只想看到我的代码警告。我没有打开“-w”标志,但Encode.pm自身内部已启用use warnings
。有没有办法隐藏模块的警告或以其他方式修复这种情况,而不必分叉Encode.pm?
我知道静音警告在某些方面可能是一个坏主意,但来自Encode.pm的大量警告使我很难发现由我自己的代码生成的警告,因为我试图调试它。这在Web服务器日志中也是不必要的麻烦。
https://metacpan.org/source/DANKOGAI/Encode-2.84/Encode.pm#L186 只有如果您使用的模块错误,则为警告。在这种情况下,屏蔽警告也是一个糟糕的主意。 – mob
我建议您发布一个发布警告的最小示例。请参阅[如何创建最小,完整和可验证的示例](http://stackoverflow.com/help/mcve) –