问题标签 [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 投票
7 回答
981 浏览

perl - 在 Perl 中应用编码标准是否有任何好的自动化框架?

我知道的一个是Perl::Critic

到目前为止,我的谷歌搜索多次尝试都没有结果。:-(

有人在这里有什么建议吗?

任何根据我们的编码标准配置 Perl::Critic 并在代码库上运行它的资源将不胜感激。

0 投票
4 回答
2278 浏览

perl - Perl::Critic: Moose 之后的生活?

我已经开始将一个项目转换为 Moose,我注意到的第一件事是我的批评/整洁测试陷入困境。Moose、Tidy 和 Critic 似乎不像以前那么喜欢彼此了。

是否有关于如何让评论家/整洁者更欣赏驼鹿方言的文档?大多数 Moose 用户都做什么?为更重的 Moose 模块放松/放弃评论家?自定义政策?

0 投票
5 回答
6018 浏览

regex - 有没有更好的方法来使用 /x 编写 Perl 正则表达式,这样代码仍然易于阅读?

我在我的一个脚本上运行了 Perl::Critic,并收到了这条消息:

我在此处查找了策略信息,并且我了解在扩展模式下编写正则表达式将对正在查看代码的任何人有所帮助。

但是,我被困在如何将我的代码转换为使用 /x 标志。

CPAN 示例:

如果您只看正则表达式,这是有道理的。

我的代码:

我不确定如何在 if 语句中使用扩展的正则表达式。我可以这样写:

这行得通,但我认为这几乎比原版更难阅读。有没有更好的方法(或最佳实践方法)来写这个?我想我可以使用 qr// 创建一个变量。

我并不是真的在寻找关于重写这个特定的正则表达式的建议(尽管如果我能改进它,我会接受建议)——我更多的是在寻找关于如何在 if 语句中扩展正则表达式的建议。

我知道 Perl::Critic 只是一个指导方针,但最好遵循它。

提前致谢!

编辑: 所以在收到一些答案后,我很清楚,并不总是需要使用带有注释的正则表达式多行。了解基本正则表达式的人应该能够理解我的示例在做什么——我添加的评论可能有点不必要和冗长。我喜欢使用扩展正则表达式标志的想法,但仍然在正则表达式中嵌入空格以使正则表达式的每个部分更加清晰。感谢所有的投入!

0 投票
4 回答
755 浏览

perl - 我们如何使用 Perl::Tidy 或 Perl::Critic 捕捉旁注?

我的部门目前正在制定一些通用的代码最佳实践,我们希望在某种程度上强制执行,为开发人员提供Perl::Tidy配置Perl::Critic

现在我们遇到了附带评论的问题。旁注是这样的:

我们宁愿根本没有旁注,因为在大多数情况下,它们可以写在有问题的代码之上,在那里它们更容易阅读。如果可能的话,一个Perl::Tidy解决方案将是完美的,它将一个旁注移到它上面的行,第二好的是Perl::Critic政策(我在 CPAN 也没有找到),第三好的也是最后一个是开发人员在进行代码审查时注意指出这些注释。

可以用Perl::Tidyor实现Perl::Critic吗?

0 投票
4 回答
1386 浏览

perl - 如何在 Windows 上的 Komodo IDE 5.1 中启用 PerlCritic 支持?

我正在尝试在 Komodo 中启用 PerlCritic 支持。

Komodo IDE 5.1 (Win 32) 的制造商 ActiveState 的官方说法是:

“要启用 PerlCritic 支持,请安装 'Perl-Critic' 和 'criticism' 模块。”

好吧,安装 Perl-Critic 是小菜一碟:

但是,我搜索了 PPM4 中的每个存储库(touchelle 和通常的嫌疑人),他们似乎没有名为“批评”的模块。我已经使用 CPAN 和 PPM 安装了很多模块,但这个模块被证明是迄今为止最难以捉摸的。我在这里错过了什么吗?

有没有人在 Windows 上的 Komodo 5.1 中启用 PerlCritic 支持?期待您的回复。该功能在 MacOS 和 Linux 中完美运行……嗯。

替代文字

0 投票
8 回答
593 浏览

perl - 当我处理带有文件句柄的多行字符串时,如何避免 Perl::Critic 警告?

除了下面显示的 string-as-a-filehandle 解决方案之外,有没有人可以解决一次处理多行字符串的任务?

我不想使用文件句柄的理由很弱。当我在任何文件句柄上的打开命令和关闭命令之间有超过 10 条源代码行时,Test::Perl::Critic 会发牢骚。我正在对 $single_line 进行相当多的处理,所以在我的公开通话和关闭通话之间实际上有大约 40 行代码,我看不出有任何方法可以将其减少到 10 行。

而且我真的不想忽略构建中的 Perl::Critic 测试,因为这实际上是一个体面的测试,每当我在代码中打开一个实际的磁盘文件时,我都想通过它。

0 投票
2 回答
2565 浏览

perl - 我是否需要在对 Win32::OLE->LastError 的调用中捕获错误?

[编辑] - 事后看来,这个问题被误导了。我没有删除它,因为它是Perl::Critic错误使用 eval和正确批评的一个很好的例子。

Perl Critic 对以下代码提出以下批评:

eval 的返回值未测试。您不能依赖 的值$@/$EVAL_ERROR来判断 eval 是否失败

我的想法是我eval用来检测错误对象的存在并在Win32:OLE模块上检测错误并报告它。

我可以安全地忽略批评吗?

0 投票
2 回答
370 浏览

perl - 如何并行运行 Test::Perl::Critic?

我编写了一个基于Test::Perl::Critic的简单测试用例,它在存储库 ( )critic中的每个源文件上运行。all_critic_ok然而,这个测试需要很长时间,特别是因为我也使用Perl::Tidy策略。

通常,批评不同的文件并不依赖于其他批评者,所以我认为我可以并行化这些测试。事实证明,TAP::Harness确实可以并行化测试,但只能在文件方面,而不是在测试方面。

您将如何并行化这些测试?任何解决方法都可以。

0 投票
4 回答
413 浏览

c - 有没有像 PPI 或 Perl::Critic for C 的东西?

PPIPerl::Critic允许程序员在他们的 Perl 程序的语法中检测某些东西。

有没有类似的东西可以标记/解析 C 并让你有机会编写脚本来处理这些信息?

0 投票
2 回答
4688 浏览

perl - 如何让 Perl::Critic 与 EPIC 和 eclipse 一起工作?

我在 WinXP SP3 上使用 EPIC 0.5.46 和 ActiveState ActivePerl 5.10.0 运行 eclipse Galileo。

我刚刚使用包管理器下载了Perl::Critic,并使用适当的属性页面将其集成到 eclipse 中。

我可以从我的 Eclipse 源上下文菜单中很好地运行 Perl::Critic;它运行。但它并没有在我的源代码中放置任何标记...换句话说,我看不到它的结果。(我的 Perl 不是那么好。)

拜托,如果你告诉我 RTFM,请指出哪个 FM 给 R。谢谢你的指点。