问题标签 [perl-critic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
921 浏览

perl - Perl::Critic: Code before warnings are enabled when using -w

Im getting Code before warnings are enabled from perl::critic, even though I have -w specified in the shebang

#!/usr/bin/perl -w

I Really don't want to have to go through and replace all instances. Is there anything I can do. Additionally, I do want perl::critic to ensure all perl has warnings enabled.

0 投票
2 回答
1872 浏览

perl - 子程序是否应该总是显式返回?

如果perlcritic说“在 sub 中没有回报是错误的”,如果真的不需要它们,还有什么选择?

我已经养成了两个明显的坏习惯:

  • 我明确地将变量分配给 '$main::' 命名空间。
  • 然后我在 subs 中使用这些变量。

例如,我可能会做..

我不总是这样做。但在上面,这是有道理的,因为我可以分离操作,不必担心来回传递值,而且它通常看起来很整洁。

但正如我所说,perl 评论家说它错了 - 因为没有回报..

那么,有没有人能够解释我正在尝试做的事情并提出一种更好的方法来处理这种在 perl 中的编码风格?例如。我是在做 OOP 吗?

0 投票
2 回答
107 浏览

perl - 在 Strawberry Portable 5.20.2 上安装 Pod::Spell 失败

当我尝试cpanm Pod::Spell使用 Strawberry 5.20.2(64 位 PortableZIP 版本)时,它会标记I18N::Langinfo为依赖项。当它试图下载它的发行版时,I18N::Langinfo它会找到它,R/RJ/RJBS/perl-520.0.tar.gz并且明智地认为继续下去会更好。

Pod::Spell仅作为 的依赖项感兴趣Perl::Critic

关于如何解决这个依赖问题的任何建议?

0 投票
3 回答
924 浏览

perl - Perlcritic:如何解决'^Magic 变量“$ENV”应该被分配为“local”'?

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

当通过 perlcritic 运行它时,对于每个此类分配,我都会违反严重性 4:

谷歌搜索该错误消息并没有给我任何好的解决方案。在这种情况下抱怨的 perlcritic 违规是 Variables::RequireLocalizedPunctuationVars,并且给出的示例处理本地化文件句柄。我试图在 Perl Best Practices 中找到相关部分,但它只讨论本地化包变量。

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

这并不能解决违规问题。

我的问题如下:

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

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

0 投票
2 回答
2007 浏览

perl - perlcritic: eval "require $module";

在挖掘一些旧的源代码时,我看到了以下内容:

虽然我了解代码的作用,但它会尝试“要求”一个模块并在它不成功时死掉 - 批评者抱怨它

“eval”的表达形式在第 331 行第 13 列。参见 PBP 的第 161 页。(严重性:5)

不幸的是我没有PBP书,所以想知道上面的正确方法是什么......

此外,在同一来源中发现:

这里不明白是什么解决了“eval”,perlcritic 再次抱怨“string eval”......

有人可以解释一下关于“字符串评估”的基本要点以及如何正确编写上述内容吗?

0 投票
1 回答
572 浏览

perl - 模块以“1;”结尾,perlcritic 抱怨它没有

有一个简单的模块

perlcritic -1说_

如何让批评家开心?

编辑 - 基于@toolic 的评论

是的,整洁有助于解决第一个问题(但Code is not tidy at line 1, column 1.没有太大帮助的消息),因为差异是:

但还是得到了:

我的批评家:

0 投票
3 回答
294 浏览

perl - 使用 eval 插值变量时避免使用 PerlCritic

perlcritic在以下代码的第一行eval中抱怨“eval”[BuiltinFunctions::ProhibitStringyEval] 的表达式形式:

我尝试使用 eval {} 来修复 perlCritic 但它没有返回预期的结果。

回应是:

是否有使用字符串插值的解决方法?这个想法是在配置文件上有一组规则,让代码读取和评估它们。

谢谢

0 投票
2 回答
1421 浏览

perl - Perl + PerlCritic | 循环迭代器不是词法的

我有这个代码

在 perlcritic 检查后,我收到消息“循环迭代器不是词法”。怎么了?

我可以用

但为什么?:)

0 投票
1 回答
204 浏览

perl - 如何在 perlcritic 中修改规则

嗨,

Perl 评论家(源代码分析器)。我是新来的 。虽然我研究过文档并且知道如何运行它(这还不够!)。我想修改规则(即包含、排除或添加我自己的规则)。我知道 .perlcriticrc 文件可以做到这一点。但我不知道该怎么做。

谢谢

0 投票
1 回答
271 浏览

perl - PerlCritic 标记 ProhibitMagicNumbers 违规仅 10 次

我在以下代码上运行 PerlCritic:

我使用的命令是(文件名是 test_9.pl)

这是我运行上面的命令后得到的结果

可以看出,有很多硬编码值的实例,但 PerlCriticPerl::Critic::Policy::ValuesAndExpressions::ProhibitMagicNumbers只标记了 10 次违规。有没有办法让 PerlCritic 标记错误超过 10 次?