这是命令 perlcriticp,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
"perlcritic" - 用于评论 Perl 源代码的命令行界面。
概要
珍珠质 [-12345 | --残酷 | --残酷 | --严厉 | --stern | - 温和的]
[--严重性编号 | 名称] [{-p | --profile} 文件 | --noprofile]
[--top [数字]] [--主题表达] [--包含模式]
[--排除模式] [{-s | --single-policy} 模式]
[--仅 | --noonly] [--profile-strictness {warn|fatal|quiet}]
[--力 | --noforce] [--statistics] [--statistics-only]
[--计数 | -C] [--verbose {number | 格式}] [--allow-不安全]
[--颜色 | --nocolor] [--pager 寻呼机] [--quiet]
[--颜色-严重性-最高颜色_规范]
[--颜色-严重性-高颜色_规范]
[--颜色-严重性-中颜色_规范]
[--颜色-严重性-低颜色_规范]
[--颜色-严重性-最低颜色_规范]
[--有违规行为的文件 | -l]
[--无违规文件 | -L]
[--程序扩展名 文件扩展名]
{文件| 目录 | 标准输入}
perlcritic --profile-proto
perlcritic { --list | --list 启用 | --list-themes | --doc 模式 [...] }
perlcritic { --help | --选项| --man | - 版本 }
商品描述
“perlcritic”是一个 Perl 源代码分析器。 它是可执行的前端
Perl::Critic 引擎,它试图识别笨拙、难以阅读、容易出错或
代码中的非常规结构。 大多数规则都是基于 Damian Conway 的
书 Perl的 最棒的 行为准则. 然而,“perlcritic”是 而不去 仅限于执行 PBP,并且
甚至会支持与康威相矛盾的规则。 所有规则都可以轻松配置或
根据您的喜好禁用。
本文档仅介绍如何驱动此命令。 对于所有其他信息,例如
作为 API 参考和替代接口,请参阅 Perl::Critic 的文档
本身。
用法 示例
在进入所有血腥细节之前,这里有一些基本的使用示例,以帮助您了解
你开始了。
# 仅报告最严重的违规(严重性 = 5)
perlcritic YourModule.pm
# 同上,但从 STDIN 读取输入
珍珠岩
# 递归处理目录下的所有 Perl 文件
perlcritic /一些/目录
# 也报告稍微不那么严重的违规(严重性 >= 4)
perlcritic -4 YourModule.pm
# 同上,但使用命名的严重性级别
perlcritic --stern YourModule.pm
# 报告所有违规行为,无论严重性如何(严重性 >= 1)
perlcritic -1 YourModule.pm
# 同上,但使用命名的严重性级别
perlcritic --残酷的 YourModule.pm
# 仅报告违反“Perl 最佳实践”的内容
perlcritic --主题 pbp YourModule.pm
# 报告前 20 名最严重的违规行为(严重性 >= 1)
perlcritic --top YourModule.pm
# 报告与 m/variables/xms 匹配的策略的其他违规行为
perlcritic --include 变量 YourModule.pm
# 使用其他地方的默认值 ~/.percriticrc
perlcriticrc --profile 项目/特定/perlcriticrc YourModule.pm
争论
参数是您要分析的文件的路径。 您可以指定多个文件。
如果参数是一个目录,"perlcritic" 将分析下面的所有 Perl 文件
目录。 如果未指定参数,则从 STDIN 读取输入。
配置
选项名称可以缩写为唯一性,并且可以用单引号或双引号表示
破折号和选项值可以用空格或“=”与选项名称分开(如
Getopt::Long)。 选项名称也区分大小写。
“--profile 文件”或“-p 文件”
指示“perlcritic”使用由 FILE 命名的配置文件,而不是查找
默认 .percriticrc 当前目录或您的主目录中的文件。 看
Perl::Critic 中的“配置”以获取更多信息。
“--noprofile”
指示“perlcritic”不加载任何配置文件,从而恢复为默认值
所有策略的配置。
“--严重性 N”
指示“perlcritic”仅应用严重性大于“N”的策略。
严重性值是从 1(最不严重)到 5(最严重)的整数。 这
默认值为 5。对于给定的“--profile”,降低“--severity”通常会
产生更多的违规行为。 您可以在您的
.percriticrc 文件。 您还可以为您的任何政策重新定义“严重性”
.percriticrc 文件。 有关详细信息,请参阅“配置”。
“-5 | -4 | -3 | -2 | -1”
这些是用于设置“--severity”选项的数字快捷方式。 例如,“-4”是
相当于“--severity 4”。 如果指定了多个快捷方式,则最
限制性一胜。 如果还给出了明确的“--severity”选项,则所有
快捷方式选项被默默忽略。 注意:注意不要放一个数字
紧跟在“--top”标志或“perlcritic”之后的严重性快捷选项将
将其解释为要报告的违规次数。
“--严重性名称”
如果您很难记住严重程度“5”是最高还是最低
限制级别,那么您可以使用以下命名值之一:
SEVERITY NAME ...相当于... SEVERITY NUMBER
-------------------------------------------------- ------
--severity 温和 --severity 5
--severity 严厉 --severity 4
--severity 苛刻 --severity 3
--severity 残酷 --severity 2
--severity 残酷 --severity 1
“--温柔 | --stern | --harsh | --cruel | --brutal”
这些是用于设置“--severity”选项的命名快捷方式。 例如,“--cruel”
相当于“--severity 2”。 如果指定了多个快捷方式,则最
限制性一胜。 如果还给出了明确的“--severity”选项,则所有
快捷方式选项被默默忽略。
“--主题规则”
指示“perlcritic”仅应用具有满足“规则”的主题的策略。
主题是相关策略组的任意名称。 你可以结合主题
带有布尔运算符的名称以创建任意复杂的“规则”。 例如,
以下将仅适用于具有“错误”和“pbp”主题的政策:
$> perlcritic --theme='bugs && pbp' MyModule.pm
除非明确给出“--severity”选项,否则设置“--theme”会导致
将“--severity”设置为1。您可以在中设置此选项的默认值
您的 .percriticrc 文件。 有关更多信息,请参阅 Perl::Critic 中的“政策主题”
关于主题。
“--包括模式”
指示“perlcritic”应用与正则表达式“/PATTERN/imx”匹配的其他策略。
使用此选项临时覆盖您的配置文件和/或严重性设置
命令行。 例如:
perlcritic --include=layout my_file.pl
这将导致“perlcritic”应用所有“CodeLayout::*”策略,即使它们
严重性级别低于默认级别 5,或已被禁用
在您的 .percriticrc 文件。 您可以指定多个“--include”选项,您可以
将它与“--exclude”选项结合使用。 请注意,“--exclude”需要
当策略匹配两种模式时,优先于“--include”。 您可以设置
此选项的默认值在您的 .percriticrc 文件中。
“--排除模式”
指示“perlcritic”不应用任何与正则表达式“/PATTERN/imx”匹配的策略。
使用此选项临时覆盖您的配置文件和/或严重性设置
命令行。 例如:
perlcritic --exclude=strict my_file.pl
这将导致“perlcritic”不应用“RequireUseStrict”和
“ProhibitNoStrict”策略,即使它们具有最高的严重性级别。 你可以
指定多个“--exclude”选项,您可以将其与
“--include”选项。 请注意,“--exclude”优先于“--include”,当
策略匹配这两种模式。 您可以在您的
.percriticrc 文件中。
“--single-policy PATTERN”或“-s PATTERN”
指示“perlcritic”仅应用一个与正则表达式匹配的策略模块
“/PATTERN/ixms”,并排除所有其他政策。 此选项优先于
“--severity”、“--theme”、“--include”、“--exclude”和“--only”选项。 例如:
perlcritic --single-policy=nowarnings my_file.pl
这将导致“perlcritic”只应用“ProhibitNoWarnings”政策,
无论严重性级别设置如何。 不会应用其他政策。
这相当于一个人可能打算...
perlcritic --排除=。 --include=nowarnings my_file.pl
...但这不起作用,因为“--exclude”选项覆盖了“--include”
选项。
此选项的等效项可以通过创建自定义配置文件来完成
仅包含所需的策略,然后运行...
perlcritic --profile=customprofile --only my_file.pl
“--top [N]”
指示“perlcritic”仅报告每个文件中排名最高的“N”个策略违规
根据他们的严重程度。 如果未指定“N”,则默认为 20。如果“--severity”
选项(或快捷方式之一)没有明确给出,“--top”选项暗示
最低严重性级别为“1”(即“残酷”)。 用户可以重新定义
任何政策的严重性 .percriticrc 文件。 更多信息请参见“配置”
信息。 您可以在您的 .percriticrc
文件。 注意:注意不要立即放置严重性快捷方式选项之一
在“--top”标志或“perlcritic”之后将其解释为违规次数
报告。
“ - 力量”
指示“perlcritic”忽略源中神奇的“## no critic”注释
代码。 有关更多信息,请参阅“改变规则”。 您可以设置默认值
你的这个选项 .percriticrc 文件中。
“ - 统计数据”
导致被扫描的代码和发现的违规的几个统计信息
在任何其他输出之后报告。
“--仅统计”
类似于“--statistics”选项,但会抑制正常输出并且只显示
统计数字。
"--verbose N | FORMAT"
设置报告违规的详细程度或格式。 如果给定一个数字(“N”),
“perlcritic”使用下面描述的预定义格式之一报告违规。
如果给定一个字符串(“FORMAT”),它被解释为一个实际的格式规范。
如果未指定“--verbose”选项,则默认为 4 或 5,具体取决于
是否将多个文件作为参数提供给“perlcritic”。 您可以设置
此选项的默认值在您的 .percriticrc 文件中。
详细格式规范
———————————————————————— ----------------
1 "%f:%l:%c:%m\n",
2 "%f: (%l:%c) %m\n",
3 "%m 在 %f 行 %l\n",
4 "%m 在第 %l 行,第 %c 列。%e。(严重性:%s)\n",
5 "%f: %m 在第 %l 行,第 %c 列。%e。(严重性:%s)\n",
6 "%m 在第 %l 行,靠近 '%r'。(严重性:%s)\n",
7 "%f: %m 在 '%r' 附近的第 %l 行。(严重性:%s)\n",
8 "[%p] %m 在第 %l 行,第 %c 列。(严重性:%s)\n",
9 "[%p] %m 在第 %l 行,靠近 '%r'。(严重性:%s)\n",
10 "%m 在第 %l 行,第 %c 列。\n %p(严重性:%s)\n%d\n",
11 "%m 在第 %l 行,靠近 '%r'。\n %p(严重性:%s)\n%d\n"
格式是文字和转义字符的组合,类似于
“sprintf”有效。 有关格式的完整说明,请参阅 String::Format
能力。 有效的转义字符是:
转义意义
------- ------------------------------------------- -----------------
%c 发生违规的列号
%d 对违规的完整诊断讨论
%e PBP 中违规或页码的说明
%F 只是发生违规的文件的名称。
%f 发生违规的文件的路径。
%l 发生违规的行号
%m 违规的简要描述
%P 创建违规的策略模块的全名
%p 不带 Perl::Critic::Policy:: 前缀的策略名称
%r 导致违规的源代码字符串
%C 导致违规的 PPI::Element 的类
%s 违规的严重程度
这些格式的目的是提供与文本编辑器的一些兼容性
有一个接口来解析某些类型的输入。 请参阅“编辑器集成”了解
更多信息。
“ - 列表”
显示所有 Perl::Critic::Policy 模块的精简列表
这台机器。 此选项列出 所有 政策,无论您 .percriticrc or
命令行选项。 对于每个策略,名称、默认严重性和默认主题
显示。
“--列表启用”
显示所有 Perl::Critic::Policy 模块的精简列表 将 be
强制执行,如果您真的要使用此命令评论文件。 这是
当您构建复杂的命令或修改您的命令时很有用 .percriticrc
文件,并且您想确切地查看将要执行(或不执行)哪些策略
强制执行,视情况而定)。 对于每个策略,名称、默认严重性和默认
显示主题。
“--list-主题”
显示找到的 Perl::Critic::Policy 模块的所有主题的列表
在这台机器上。
“--profile-proto”
显示所有 Perl::Critic::Policy 模块的扩展列表
这台机器。 对于每个策略,名称、默认严重性和默认主题是
显示,以及策略支持的任何附加参数的名称。 这
格式适合作为您的原型 .percriticrc 文件中。
“ - 只要”
指示 perlcritic 仅应用在您的
.percriticrc 文件。 如果您只想使用一小部分策略,这很有用
无需禁用所有其他功能。 您可以为此设置默认值
在您的选项 .percriticrc 文件中。
“--profile-strictness {warn|fatal|quiet}”
指导 perlcritic 如何处理在一个项目中发现的某些可恢复的问题 .percriticrc
或通过“--profile”选项指定的文件。 有效值为“警告”(默认值),
“致命”和“安静”。 例如, perlcritic 通常只警告配置文件
指的是不存在的策略,但此选项可能会使这种情况变得致命。 你
可以在您的 .percriticrc 文件中。
“ - 数数”
“-C”
仅显示每个文件的违规次数。 使用此功能可快速获得
处理大量代码可能最需要注意的地方。
“ - 苹果浏览器”
报告“Perl 最佳实践”引用作为部分编号来自
<http://safari.oreilly.com> 而不是实际书中的页码。 注意:这
功能尚未实现。
"--color" = 项目 "--color"
此选项在输出到 tty 时打开。 设置后,严重性 5 和 4 是彩色的
分别是红色和黄色。 仅当 Term::ANSIColor 为
安装,它只适用于非 Windows 环境。 否定这个开关到
禁用颜色。 您可以在您的 .percriticrc
文件中。
“--寻呼机PAGER_COMMAND_STRING”
如果设置,perlcritic 会将它的输出通过管道传送到给定的 PAGER_COMMAND_STRING。 你可以
在您的选项中设置此选项的默认值 .percriticrc 文件中。
设置寻呼机默认关闭颜色。 你将不得不打开颜色
明确地。 如果你想要颜色,你可能还想告诉你的寻呼机
显示原始字符。 对于“更少”和“更多”,请使用 -R 开关。
“--color-severity-highest COLOR_SPECIFICATION”
指定用于最高严重性违规的颜色,作为 Term::ANSIColor
颜色规格。 也可以指定为“--colour-severity-highest”,
“--color-severity-5”或“--color-severity-5”。
“--color-severity-high COLOR_SPECIFICATION”
指定用于高严重性违规的颜色,作为 Term::ANSIColor
颜色规格。 也可以指定为“--color-severity-high”,
“--color-severity-4”或“--color-severity-4”。
“--color-severity-medium COLOR_SPECIFICATION”
指定用于中等严重性违规的颜色,作为 Term::ANSIColor
颜色规格。 也可以指定为“--colour-severity-medium”,
“--color-severity-3”或“--color-severity-3”。
“--color-severity-low COLOR_SPECIFICATION”
指定用于低严重性违规的颜色,作为 Term::ANSIColor 颜色
规格。 也可以指定为“--colour-severity-low”,
“--color-severity-2”或“--color-severity-2”。
“--color-severity-lowest COLOR_SPECIFICATION”
指定用于最低严重性违规的颜色,作为 Term::ANSIColor
颜色规格。 也可以指定为“--colour-severity-lowest”,
“--color-severity-1”或“--color-severity-1”。
“--files-with-violations”
仅显示违规文件的名称。 将此功能与
--single-policy 查找包含违反给定策略的文件。 也可以是
指定为“--l”。
“--files-without-violations”
只显示没有违规的文件名。 将此功能与
--single-policy 查找不包含违反给定策略的文件。 能
也可以指定为“--L”。
“--program-extensions file_name_extension”
告诉“perlcritic”将名称以给定文件扩展名结尾的文件视为
程序,而不是模块。 如果一个前导'.' 需要它必须明确指定,
例如
--程序扩展.pl
匹配区分大小写,选项可以指定多次
想要的,例如
--程序扩展.pl --程序扩展.cgi
以上也可以通过引用文件扩展名来完成:
--program-extensions '.pl .cgi'
名称以“.PL”结尾的文件将始终被视为程序。
“--doc 模式”
显示与“m/PATTERN/ixms”匹配的所有 Perl::Critic::Policy 模块的 perldoc。
由于策略模块的名称往往很长,这只是提供了更多
方便的表达方式如下:“perldoc
Perl::Critic::Policy::ValuesAndExpressions::RequireUpperCaseH eredocTerminator”
命令提示符。
“--允许不安全”
此选项指示“perlcritic”允许使用已标记为的策略
“不安全”。 不安全的策略可能会通过编译和执行而导致有风险的操作
他们分析的代码。 核心 Perl::Critic 中的所有策略
分发是安全的。 但是,第三方政策,例如
Perl::Critic::Dynamic 分发不安全。 注意“安全”是荣誉——如果
策略作者将策略标记为安全,并不能保证它不会做坏事
的东西。 If 别 信任 您的 政策 和 此 码 旨在 分析, 然后 do 而不去
使用 Free Introduction 开关.
“ - 安静的”
当未发现违规时,禁止显示“source OK”消息。
“ - 帮助”
“——?”
“-H”
显示选项和退出的简要摘要。
“ - 选项”
显示选项和退出的描述。 虽然这个输出很长,但它
远不及“--man”的输出长度。
“ - 男人”
显示完整的“perlcritic”手册并退出。
“ - 版本”
“-V”
显示“perlcritic”的版本号并退出。
配置
Perl::Critic 的大部分设置和每个 Policy 模块都可以由
一个配置文件。 默认的配置文件被称为 .percriticrc.
"perlcritic" 将首先在当前目录中查找此文件,然后在您的家中查找
目录。 或者,您可以将“PERLCRITIC”环境变量设置为显式
指向另一个位置的不同文件。 如果这些文件都不存在,并且
命令行上没有给出“--profile”选项,那么所有策略将被加载
他们的默认配置。
配置文件的格式是一系列 INI 样式的块,其中包含 key-
以“=”分隔的值对。 注释应该以“#”开头,并且可以放在
如果您愿意,可以在单独的行或名称-值对之后。
可以设置 perlcritic 本身的默认设置 before 此 第一 命名 块。 对于
例如,将任何或所有这些放在您的顶部 .percriticrc 文件将设置
相应命令行参数的默认值。
严重性 = 3 #整数或命名级别
only = 1 #零或一
force = 0 #零或一
verbose = 4 #整数或格式规范
top = 50 #一个正整数
theme = (pbp + security) * bugs #A 主题表达
include = NamingConventions ClassHierarchies #空格分隔列表
exclude = 变量 Modules::RequirePackage #空格分隔列表
配置文件的其余部分是一系列像这样的块:
[Perl::Critic::Policy::Category::PolicyName]
严重性 = 1
set_themes = 富酒吧
添加主题 = baz
参数 1 = 值 1
参数 2 = 值 2
"Perl::Critic::Policy::Category::PolicyName" 是一个实现模块的全名
政策。 与 Perl::Critic 一起分发的 Policy 模块被分组为
根据 Damian Conway 书中的目录分类 Perl的 最棒的 行为准则.
为简洁起见,您可以省略模块名称的“Perl::Critic::Policy”部分。
“严重性”是您希望分配给策略的重要性级别。 所有政策
模块定义了一个默认的严重性值,范围从 1(最不严重)到 5(最严重)
严重)。 但是,您可能不同意默认的严重性并选择给它一个
根据您自己的编码理念,更高或更低的严重性。 您可以设置“严重性”
到 1 到 5 的整数,或使用等效名称之一:
SEVERITY NAME ...相当于... SEVERITY NUMBER
-------------------------------------------------- -
温柔 5
船尾4
苛刻 3
残酷的 2
残酷1
“set_themes”设置策略的主题并覆盖其默认主题。 论据
是一个或多个以空格分隔的字母数字单词的字符串。 主题是案例-
麻木不仁。 有关更多信息,请参阅“政策主题”。
“add_themes”附加到此策略的默认主题。 参数是一串
一个或多个以空格分隔的单词。 主题不区分大小写。 见“政策主题”
获取更多信息。
其余的键值对是将被传递到
该策略的构造函数。 大多数 Policy 模块的构造函数不支持
论据,而那些确实应该有合理的默认值。 请参阅有关文档
有关更多详细信息,请访问相应的策略模块。
您可以完全禁用策略,而不是重新定义给定策略的严重性
通过在配置文件中的模块名称前加上“-”。 以这种方式,
无论命令行上给出的“--severity”如何,都不会加载策略。
一个简单的配置可能如下所示:
#------------------------------------------------- -------------
# 我认为这些真的很重要,所以总是加载它们
[测试和调试::RequireUseStrict]
严重性 = 5
[测试和调试::RequireUseWarnings]
严重性 = 5
#------------------------------------------------- -------------
# 我认为这些不太重要,所以只在被问到时加载
[变量::ProhibitPackageVars]
严重性 = 2
[ControlStructures::ProhibitPostfixControls]
允许=如果除非#我的自定义配置
严重性 = 残忍 # 与“严重性 = 2”相同
#------------------------------------------------- -------------
# 给这些策略一个自定义主题。 我只能激活
# 这些政策说“perlcritic --theme 'larry || curly'”
[模块::RequireFilenameMatchesPackage]
add_themes = 拉里
[测试和调试::RequireTestLabels]
add_themes = 卷毛萌
#------------------------------------------------- -------------
# 我根本不同意这些,所以永远不要加载它们
[-命名约定::大写]
[-ValuesAndExpressions::ProhibitMagicNumbers]
#------------------------------------------------- -------------
# 对于所有其他策略,我接受默认严重性,
# 所以他们不需要额外的配置。
请注意,包含在 Perl::Critic 发行版中的所有策略都具有整数
参数在其值中接受下划线(“_”),就像 Perl 数字文字一样。 为了
例,
[值和表达式::需要数字分隔符]
最小值 = 1_000
有关其他配置示例,请参阅 过审 包含在此文件中
例子 此发行版的目录。
Damian Conway 自己的 Perl::Critic 配置也包含在这个发行版中
例子/ perlcriticrc-conway.
“ 政策
大量的 Policy 模块随 Perl::Critic 一起分发。 他们被描述
在配套文档 Perl::Critic::PolicySummary 中简要介绍,在
各个模块本身。 说“perlcritic --doc PATTERN”以查看所有人的 perldoc
匹配正则表达式“m/PATTERN/ixms”的策略模块
CPAN 上有许多附加政策的发行版。 如果 Perl::Critic
不包含您想要的策略,有人可能已经编写了它。 见“见
ALSO" in Perl::Critic 获取其中一些发行版的列表。
政策 THEMES
每项政策都定义了一个或多个“主题”。 主题可用于创建任意
政策组。 它们旨在提供一种替代机制来选择
您首选的政策集。 例如,您可能希望禁用某组
分析测试程序时的策略。 相反,您可能希望只启用特定的
分析模块时的策略子集。
Perl::Critic 附带的策略分为以下主题。
这只是我们尝试提供一些基本的逻辑分组。 你可以自由发明
适合您需求的新主题。
主题描述
-------------------------------------------------- ----------------------
核心 Perl::Critic 附带的所有策略
直接来自“Perl 最佳实践”的 pbp 策略
防止或揭示错误的政策
certrec CERT 推荐的政策
CERT 考虑规则的 certrule 政策
影响代码长期健康的维护策略
只起到表面作用的美容政策
复杂性与代码复杂性特别相关的策略
与安全问题相关的安全策略
测试特定于测试程序的策略
说“perlcritic --list”以获取所有可用策略和主题的列表
与每一个相关联。 您还可以更改您的任何政策的主题
.percriticrc 文件。 有关更多信息,请参阅“配置”部分。
使用“--theme”命令行选项,您可以创建一个任意复杂的规则
确定要应用的策略。 优先级与常规 Perl 代码相同,并且您
也可以使用括号来强制优先级。 支持的运算符有:
运算符替代示例
-------------------------------------------------- ---------------
&& 和 'pbp && 核心'
|| 或 'pbp || (错误和安全性)'
! 不是 'pbp && ! (便携性 || 复杂性)'
主题名称不区分大小写。 如果“--theme”设置为空字符串,则它
将所有策略评估为真。
弯曲 “ 规则
Perl::Critic 对您的代码采取强硬态度:要么遵守,要么不遵守。 在
在现实世界中,完全遵守编码并不总是可行(甚至可能)
标准。 在这种情况下,明智的做法是表明您故意违反了
标准,并且您有一个该死的好理由 (DGR) 这样做。
为了帮助解决这些情况,您可以指示 Perl::Critic 忽略某些行或
使用注解的代码块:
需要“LegacyLibaray1.pl”; ##没有评论家
需要“LegacyLibrary2.pl”; ##没有评论家
对于我的 $element (@list) {
##没有评论家
$foo = ""; #Violates 'ProhibitEmptyQuotes'
$barf = bar() 如果 $foo; #Violates 'ProhibitPostfixControls'
#一些更邪恶的代码...
## 使用评论家
#一些好的代码...
做某事($_);
}
“## 无评论家”批注指示 Perl::Critic 忽略剩余的代码行
直到找到“## use 评论家”注释。 如果“## nocritic”注释在
与代码语句相同的行,则仅忽略该行代码。 直接
perlcritic 要忽略“## no critical”注释,请使用“--force”选项。
一个裸的“## no critic”注释禁用所有活动的策略。 如果您想禁用
仅特定的策略,添加一个策略名称列表作为参数,就像您为
“无严格”或“无警告”pragma。 例如,这将禁用
“ProhibitEmptyQuotes”和“ProhibitPostfixControls”策略直到块结束或
直到下一个“##使用评论家”注释(以先到者为准):
## 没有评论家 (EmptyQuotes, PostfixControls);
# 现在免除 ValuesAndExpressions::ProhibitEmptyQuotes
$foo = "";
# 现在豁免 ControlStructures::ProhibitPostfixControls
$barf = bar() 如果 $foo;
# 仍然受制于 ValuesAndExpression::RequireNumberSeparators
$long_int = 10000000000;
由于策略名称与常规的“## 无评论家”参数匹配
表达式,您可以缩写策略名称或禁用整个策略系列
在这样的一个镜头中:
## 没有评论家(NamingConventions)
# 现在免除 NamingConventions::Capitalization
我的 $camelHumpVar = 'foo';
# 现在免除 NamingConventions::Capitalization
子驼峰子{}
参数列表必须括在括号中,并且必须包含一个或多个逗号
分隔的裸词(即不使用引号)。 “## 无评论家”注释可以是
嵌套,并且由内部注释命名的策略将与那些一起被禁用
已经禁用了外部注释。
一些诸如“Subroutines::ProhibitExcessComplexity”之类的策略适用于整个块
代码。 在这些情况下,“## no critic”必须出现在违规所在的行上
报道。 例如:
sub complex_function { ## 没有评论家 (ProhibitExcessComplexity)
# 你的代码在这里...
}
一些诸如“Documentation::RequirePodSections”之类的策略适用于整个文档,在
在第 1 行报告哪种情况违规。但是如果文件需要一个 shebang 行,它
不可能在文件的第一行放置“## 没有评论家”。 这是一个众所周知的
限制,它将在未来的版本中解决。 作为解决方法,您可以禁用
命令行或您的受影响的策略 .percriticrc 文件。 但要注意的是
这会影响分析 所有 文件。
明智地使用此功能。 应该在尽可能小的范围内使用“## no critic”,或者
仅在单独的代码行上。 你应该总是尽可能具体
您要禁用哪些策略(即永远不要使用裸露的“## 无评论家”)。 如果
Perl::Critic 抱怨你的代码,在求助之前尝试找到一个兼容的解决方案
到这个功能。
EDITOR 积分
为了易于使用,“perlcritic”可以与您最喜欢的文本编辑器集成。 这
“perlcritic”的输出格式功能专门用于
在诸如“emacs”和“vim”之类的编辑器中可用的“grep”或“compile”模式。 在这些模式中,
您可以运行任意命令,编辑器会将输出解析为交互式
您可以单击并跳转到相关代码行的缓冲区。
Perl::Critic 团队感谢所有帮助将 Perl-Critic 与他们的
最喜欢的编辑器。 特别是您的贡献使 Perl-Critic 成为一个方便和
适用于所有类型的 Perl 开发人员的用户友好工具。 我们衷心感谢您的辛苦
工作。
埃玛斯
Joshua ben Jore 为 emacs 编写了一个小模式,允许您在
当前区域或缓冲区。 您可以按需运行,也可以将其配置为运行
保存缓冲区时自动。 输出出现在热链接编译器中
缓冲。 代码和安装说明可以在 提取 目录
在这个分布里面。
VIM
斯科特·佩沙克 (Scott Peshak) 发表了 perlchecker.vim,可在
<http://www.vim.org/scripts/script.php?script_id=1731>。
虚拟机
Fritz Mehner 最近在他出色的 gVIM 插件中添加了对“perlcritic”的支持。 在
除了提供非常 Perlish 的 IDE,Fritz 的插件还支持一键访问
"perlcritic" 和许多其他非常有用的实用程序。 所有这些都无缝集成到
编辑。 请参阅 http: 中的“/lug.fh-swf.de/vim /vim-perl/screenshots-en.html”以获取完整信息
细节。
EPIC
EPIC 是一个基于 Eclipse 平台的开源 Perl IDE。 功能包括语法
突出显示、即时语法检查、内容辅助、代码完成、perldoc 支持、
使用 Perl::Tidy、代码模板、正则表达式编辑工具和
与 Perl 调试器集成。 最新版本的 EPIC 也有内置支持
对于 Perl::Critic。 至少有一位 Perl::Critic 撰稿人对 EPIC 发誓。 去
<http://e-p-i-c.sourceforge.net> 有关 EPIC 的更多信息。
的BBEdit
Josh Clark 为 BBEdit 制作了一个优秀的 Perl-Critic 插件。 看
<http://globalmoxie.com/projects/bbedit-perl-critic/index.shtml> 下载,
安装和使用说明。 苹果用户有福了!
科莫多
Komodo 是 Perl 和其他几种动态语言的专有 IDE。 开始于
5.1.1 版,Komodo 内置了对 Perl-Critic 的支持,如果你有 Perl::Critic
和批评模块安装。 Komodo 的免费试用版可以从
ActiveState 网站位于http://www.activestate.com>.
的activeperl
ActivePerl 包括一个非常流畅的图形界面,用于配置和运行 Perl-
评论家称为“perlcritic-gui”。 可以获得 ActivePerl 的免费社区版
来自 ActiveState 网站http://www.activestate.com>.
退出 状态
如果“perlcritic”本身有任何错误,则以状态 == 1 退出。如果没有错误,
但是“perlcritic”在您的源代码中发现了违反政策的情况,并以状态 == 2 退出。如果
没有错误,也没有发现违规,退出时状态 == 0。
“ Perl::评论家 PHILOSOPHY
编码标准是非常个人化和高度主观的。 Perl::Critic 的目标
是帮助您编写符合一组最佳实践的代码。 我们的初级
目标不是规定这些做法是什么,而是实施
别人发现的做法。 最终,您制定规则——Perl::Critic 是
只是鼓励一致性的工具。 如果您认为有一项政策是
重要的或我们忽略的,我们将非常感谢您的贡献,或
您可以简单地将您自己的私有策略集加载到 Perl::Critic 中。
扩展 “ 评论家
Perl::Critic 的模块化设计旨在促进新策略的添加。
你需要对 PPI 有一些了解,但大多数策略模块都很漂亮
简单明了,只需要大约 20 行代码。 请参阅
此发行版中包含的 Perl::Critic::DEVELOPER 文件,用于逐步说明
演示如何创建新的策略模块。
如果您开发任何新的策略模块,请随时将它们发送至“[电子邮件保护]>"
我很乐意考虑将它们放入 Perl::Critic 发行版。 或者如果你
想直接在 Perl::Critic 项目上工作,你可以在
http: 中的“/github.com/Perl-Critic/Perl-Critic.git”。
Perl::Critic 团队也可供租用。 如果您的组织有自己的编码
标准,我们可以创建自定义策略来执行您的本地准则。 或者如果你的
代码库容易出现特定的缺陷模式,我们可以设计有助于
你发现那些代价高昂的缺陷 before 他们投入生产。 与您讨论您的需求
Perl::Critic 团队,请联系“[电子邮件保护]>”。
联系方式 “ 发展 TEAM / 团队
我们鼓励您订阅邮件列表; 给
<站长:[电子邮件保护]>. 为防止垃圾邮件,您可能需要
在被允许向 Tigris.org 发布消息之前,先在 Tigris.org 上注册一个用户帐户
邮件列表。 另请参阅邮件列表档案,网址为
<http://perlcritic.tigris.org/servlets/SummarizeList?listName=用户>。 至少一名成员
开发团队的成员通常在和
您可以在 Twitter 上关注 Perl::Critic,网址为.
使用 onworks.net 服务在线使用 perlcriticp