mcpField
P
perl-lint

perl-lint

github.com/jamie-bitflight测试与质量50 次安装
代码仓库

关于 perl-lint

perl-lint 是面向 Perl 开发者的代码检查与格式化技能,指导使用 Perl::Critic 和 perltidy,并涵盖工具检测、严重级别及配置。

主要功能

  1. 01检测 Perl::Critic 和 perltidy
  2. 02按严重级别分析代码
  3. 03说明问题及其严重程度
  4. 04指导使用 perltidy 格式化
  5. 05介绍项目配置文件

适用场景

  1. 01检查 Perl 脚本的策略违规
  2. 02按项目规范格式化 Perl 文件
  3. 03为代码审查选择检查级别

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jamie-bitflight/claude_skills --skill perl-lint

安装后在 Claude Code 中输入/perl-lint确认已加载。

附带文件references/code-examples.md

详细介绍

Perl 检查与格式化

自动检测工具,运行 Perl::Critic 分析和 perltidy 格式化。

工作流

  1. 检查是否已安装 perlcritic/perltidy
  2. 对指定文件运行分析
  3. 按严重级别报告发现的问题
  4. 建议修复方法或格式化代码

工具检测

首先,确认工具是否可用:

# Check perlcritic
command -v perlcritic >/dev/null && echo "perlcritic available" || echo "Install: cpanm Perl::Critic"

# Check perltidy
command -v perltidy >/dev/null && echo "perltidy available" || echo "Install: cpanm Perl::Tidy"

Perl::Critic 分析

运行 perlcritic
# Default analysis (severity 5 - gentle)
perlcritic script.pl

# All severities (1 = strictest)
perlcritic --severity 1 script.pl

# Specific severity level
perlcritic --severity 3 script.pl

# With verbose explanations
perlcritic --verbose 11 script.pl

# Single policy
perlcritic --single-policy RequireUseStrict script.pl

# Exclude policies
perlcritic --exclude RequireUseWarnings script.pl
严重级别
级别名称描述
5温和明显且毫无歧义的问题
4严格通常是不良实践
3严厉有争议但建议遵循
2苛刻对风格更加挑剔
1严酷最严格
常见策略
策略严重级别问题
RequireUseStrict5缺少 use strict
RequireUseWarnings4缺少 use warnings
ProhibitBarewordFileHandles5使用裸字文件句柄
ProhibitTwoArgOpen5使用双参数 open()
ProhibitStringyEval5使用字符串调用 eval
RequireTidyCode1代码未格式化
配置文件

在项目根目录中创建 .perlcriticrc:

# .perlcriticrc
severity = 3
verbose = 8
theme = core

# Exclude specific policies
[-Documentation::RequirePodSections]
[-InputOutput::RequireBriefOpen]

# Configure specific policy
[CodeLayout::RequireTidyCode]
perltidyrc = .perltidyrc

[Variables::ProhibitPackageVars]
packages = Data::Dumper File::Find

[TestingAndDebugging::ProhibitNoStrict]
allow = refs
详细输出格式
级别输出格式
1仅行号
4行号 + 列号
8行号 + 策略 + 严重级别
10完整说明
11包含 PBP 页面参考

Perltidy 格式化

基本用法
# Format file (creates .bak backup)
perltidy script.pl

# Format to stdout (no backup)
perltidy -st script.pl

# In-place edit (no backup)
perltidy -b -nst script.pl

# Check if tidy (exit code)
perltidy -st script.pl | diff -q - script.pl
常见选项
# Basic formatting
perltidy -i=4 -ci=4 -l=100 script.pl

# Full command with common options
perltidy \
    --indent-columns=4 \
    --continuation-indentation=4 \
    --maximum-line-length=100 \
    --vertical-tightness=2 \
    --paren-tightness=1 \
    --brace-tightness=1 \
    script.pl
配置文件

在项目根目录中创建 .perltidyrc:

# .perltidyrc

# Indentation
--indent-columns=4
--continuation-indentation=4

# Line length
--maximum-line-length=100

# Blank lines
--blank-lines-before-subs=1
--blank-lines-after-block-opening=0

# Spaces
--paren-tightness=1
--brace-tightness=1
--square-bracket-tightness=1

# Vertical alignment
--no-outdent-long-quotes
--no-outdent-long-comments

# Output
--backup-and-modify-in-place
--backup-file-extension=/

组合工作流

检查并修复

代码示例

解读结果

严重级别 5(严重)

必须立即修复:

Bareword file handle opened at line 10, column 1.
Two-argument "open" used at line 15, column 5.

修复方法:

# Wrong
open FILE, $filename;

# Correct
open my $fh, '<', $filename;
严重级别 4(重要)

应该修复:

Code before strictures are enabled at line 1.

修复方法:

# Add at top
use strict;
use warnings;
严重级别 3(建议)

考虑修复:

Regular expression without "/x" flag at line 25.

安装

如果缺少工具:

# Install both tools
cpanm Perl::Critic Perl::Tidy

# Verify installation
perlcritic --version
perltidy --version

快速命令

检查指定文件:

perlcritic --severity 4 --verbose 8 path/to/file.pl

检查目录中的所有 Perl 文件:

find . -name '*.pl' -o -name '*.pm' | xargs perlcritic --severity 4

格式化所有文件:

find . -name '*.pl' -o -name '*.pm' | xargs perltidy -b

评论

支持 Markdown