Agent skill · software engineering · affaan-m
perl-patterns
现代 Perl 5.36+ 的惯用法、最佳实践和约定,用于构建稳健、可维护的 Perl 应用程序。
Why this skill is useful
Provides modern Perl 5.36+ idioms and best practices that enhance code maintainability and robustness, which the AI may not reliably generate on its own.
What it needs
About 6k tokens when loaded. Last updated 2026-08-06. 238,342 stars on the source repository.
What this skill does
现代 Perl 开发模式 适用于构建健壮、可维护应用程序的 Perl 5.36+ 惯用模式和最佳实践。 何时启用 编写新的 Perl 代码或模块时 审查 Perl 代码是否符合惯用法时 重构遗留 Perl 代码以符合现代标准时 设计 Perl 模块架构时 将 5.36 之前的代码迁移到现代 Perl 时 工作原理 将这些模式作为偏向现代 Perl 5.36+ 默认设置的指南应用:签名、显式模块、聚焦的错误处理和可测试的边界。下面的示例旨在作为起点被复制,然后根据您面前的实际应用程序、依赖栈和部署模型进行调整。 核心原则 1. 使用 v5.36 编译指令 单个 use v5.36 即可替代旧的样板代码,并启用严格模式、警告和子程序签名。 2. 子程序签名 使用签名以提高清晰度和自动参数数量检查。 3. 上下文敏感性 理解标量上下文与列表上下文——这是 Perl 的核心概念。 4. 后缀解引用 对嵌套结构使用后缀解引用语法以提高可读性。 5. isa 运算符 (5.32+) 中缀类型检查——替代 blessed($o) && $o->isa('X')。 错误处理 eval/die 模式 Try::Tiny(可靠的异常处理) 原生 try/catch (5.40+) 使用 Moo 的现代 OO 优先使用 Moo 进行轻量级、现代的面向对象编程。仅当需要 Moose 的元协议时才使用它。 Moo 角色 原生 class 关键字 (5.38+, Corinna) 正则表达式 命名捕获和 /x 标志 预编译模式 数据结构 引用和安全深度访问 文件 I/O 三参数 open 使用 Path::Tiny 进行文件操作 模块组织 标准项目布局 导出器模式 工具 perltidy 配置 (.perltidyrc) perlcritic 配置 (.perlcriticrc) 依赖管理 (cpanfile + carton) 快速参考:现代 Perl 惯用法 遗留模式 现代替代方案 --- --- use strict; use warnings; use v5.36; my ($x, $y) = @; sub foo($x, $y) { ... } @{ $ref } $ref->@ %{ $ref } $ref->% open FH, "< $file" open my $fh, '<:encoding(UTF-8)', $file blessed hashref Moo 带类型的类 $1, $2, $3 $+{name} (命名捕获) eval { }; if ($@) Try::Tiny 或原生 try/catch (5.40+) BEGIN { require Exporter; } use Exporter 'import'; 手动文件操作 Path::Tiny blessed($o) && $o->isa('X') $o isa 'X' (5.32+) builtin::true / false use builtin 'true', 'false'; (5.36+, 实验性) 反模式 记住:现代 Perl 是简洁、可读且安全的。让 use v5.36 处理样板代码,使用 Moo 处理对象,并优先使用 CPAN 上经过实战检验的模块,而不是自己动手的解决方案。
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills affaan-m/perl-patterns--7e7a5a