我正在编写一个 perl 脚本,该脚本需要在调用外部程序之前设置许多环境变量。我的代码有形式
$ENV{'VAR1'} = "value1";
$ENV{'VAR2'} = "value2";
当通过 perlcritic 运行它时,对于每个此类分配,我都会违反严重性 4:
^Magic variable "$ENV" should be assigned as "local"
谷歌搜索该错误消息并没有给我任何好的解决方案。在这种情况下抱怨的 perlcritic 违规是 Variables::RequireLocalizedPunctuationVars,并且给出的示例处理本地化文件句柄。我试图在 Perl Best Practices 中找到相关部分,但它只讨论本地化包变量。
我尝试的一种解决方案是在分配之前使用以下语句本地化 %ENV。
local %ENV = ();
这并不能解决违规问题。
我的问题如下:
这种 Perlcritic 违规甚至与 %ENV 的分配有关,还是我可以忽略它?
如果它是相关的,解决它的最佳方法是什么?