小编ali*_*sea的帖子

Perlcritic:我该如何解析'^ Magic变量“ $ ENV”应该分配为“ local”'?

我正在编写一个Perl脚本,该脚本需要在调用外部程序之前设置许多环境变量。我的代码具有以下形式

$ENV{'VAR1'}    = "value1";
$ENV{'VAR2'}    = "value2";
Run Code Online (Sandbox Code Playgroud)

通过perlcritic运行此程序时,每次此类分配都会收到严重性为4的违规:

^Magic variable "$ENV" should be assigned as "local"
Run Code Online (Sandbox Code Playgroud)

谷歌搜索该错误消息并没有给我任何好的解决方案。在这种情况下,抱怨的过激冲突是Variables :: RequireLocalizedPunctuationVars,给出的示例涉及本地化文件句柄。我试图在Perl最佳实践中找到相关的部分,但它仅涉及本地化软件包变量。

我尝试的一种解决方案是在分配之前使用以下语句本地化%ENV。

local %ENV = ();
Run Code Online (Sandbox Code Playgroud)

这不能解决违规问题。

我的问题如下:

这种Perlcritic违规行为甚至与%ENV的分配相关,还是我可以忽略它?

如果相关,解决它的最佳方法是什么?

perl environment-variables perl-critic

2
推荐指数
2
解决办法
662
查看次数

标签 统计

environment-variables ×1

perl ×1

perl-critic ×1