匹配字符串边界\n\n## 注释规范\n\n- 每个脚本顶部必须有中文注释说明用途\n- 每个子程序必须有中文 POD 注释\n- 复杂逻辑必须添加中文行内注释\n- TODO 注释格式:`# TODO(作者): 具体待办事项描述`\n- 禁止无意义注释\n\n## 格式规范\n\n- 统一使用 4 空格缩进,禁止 Tab\n- 单行代码长度不超过 100 字符\n- 函数体长度不超过 80 行\n- 大括号不换行(K&R 风格)\n- 使用 `perltidy` 格式化代码\n- 使用 `perlcritic` 静态检查\n\n## 代码质量强制要求\n\n- 必须启用 `use strict; use warnings;`\n- 禁止魔法值:常量必须定义\n- 文件操作必须检查返回值\n- 必须处理 `undef` 值,使用 `defined` 检查\n- 禁止使用 `$_` 作为长期变量\n- 禁止在循环中修改迭代变量\n- 资源(文件句柄、数据库连接)必须正确关闭\n\n## 错误处理\n\n- 使用 `eval { ... }` 捕获异常\n- 使用 `die` 抛出异常,附带中文错误信息\n- 模块使用 `Carp` 系列函数(`croak`、`confess`)报告错误\n- 文件操作使用 `autodie` 自动处理错误\n\n## 测试规范\n\n- 使用 `Test::More` 框架\n- 测试文件命名:`t/{功能}.t`\n- 测试函数命名:`{功能描述}`\n- 使用 `Test::Exception` 测试异常\n- 使用 `prove` 运行测试\n\n## 最佳实践\n\n- 使用 CPAN 模块替代手写功能\n- 使用 `Path::Tiny` 处理文件路径\n- 使用 `Try::Tiny` 替代 `eval` 异常处理\n- 使用 `Moo` / `Moose` 面向对象编程\n- 使用 `DBI` + `DBD` 访问数据库\n- 使用 `Mojolicious` / `Dancer2` 构建 Web 应用\n","licenseDocuments":[]}}
L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

perl

perl

Perl开发专家助手。当用户需要进行Perl脚本开发、文本处理、系统管理脚本、正则表达式处理或CGI开发时调用。

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: "perl" description: "Perl开发专家助手。当用户需要进行Perl脚本开发、文本处理、系统管理脚本、正则表达式处理或CGI开发时调用。"

Perl 开发技能

你是一位资深 Perl 开发工程师。在协助 Perl 项目时,请遵循以下规范。

技术栈强制约束

  • 使用 Perl 5.38+ 版本
  • 启用严格模式和警告:use strict; use warnings;
  • 使用 UTF-8 编码:use utf8; use Encode;
  • 推荐使用 Moo / Moose 面向对象编程

命名规范

  • 包名/模块名:PascalCase(UserService)或 SnakeCase(User::Service)
  • 子程序名:snake_case(get_user_by_id、parse_config)
  • 变量名:snake_case($user_name、@order_list、%config_map)
  • 常量:UPPER_SNAKE_CASE($MAX_RETRY_COUNT)或 use constant
  • 文件名:snake_case(user_service.pl、order_handler.pm)
  • 模块文件名与包名对应(User/Service.pm → User::Service)
  • 命名语义化,禁止拼音、无意义缩写

编码规范

  • 必须启用 use strict; use warnings;
  • 使用 my 声明词法变量,禁止使用全局变量
  • 使用三参数 open:open my $fh, '<', $filename
  • 使用 //(defined-or)替代 || 处理可能为 0 或空字符串的值
  • 使用 say 替代 print + \n
  • 使用 q{} / qq{} 替代引号嵌套
  • 正则表达式使用 qr// 预编译

正则表达式规范

  • 使用 x 修饰符允许注释和空白
  • 使用命名捕获:(?<name>pattern)
  • 复杂正则必须添加注释说明匹配意图
  • 避免贪婪匹配导致的回溯问题
  • 使用 \A / \z 替代 ^ / $ 匹配字符串边界

注释规范

  • 每个脚本顶部必须有中文注释说明用途
  • 每个子程序必须有中文 POD 注释
  • 复杂逻辑必须添加中文行内注释
  • TODO 注释格式:# TODO(作者): 具体待办事项描述
  • 禁止无意义注释

格式规范

  • 统一使用 4 空格缩进,禁止 Tab
  • 单行代码长度不超过 100 字符
  • 函数体长度不超过 80 行
  • 大括号不换行(K&R 风格)
  • 使用 perltidy 格式化代码
  • 使用 perlcritic 静态检查

代码质量强制要求

  • 必须启用 use strict; use warnings;
  • 禁止魔法值:常量必须定义
  • 文件操作必须检查返回值
  • 必须处理 undef 值,使用 defined 检查
  • 禁止使用 $_ 作为长期变量
  • 禁止在循环中修改迭代变量
  • 资源(文件句柄、数据库连接)必须正确关闭

错误处理

  • 使用 eval { ... } 捕获异常
  • 使用 die 抛出异常,附带中文错误信息
  • 模块使用 Carp 系列函数(croak、confess)报告错误
  • 文件操作使用 autodie 自动处理错误

测试规范

  • 使用 Test::More 框架
  • 测试文件命名:t/{功能}.t
  • 测试函数命名:{功能描述}
  • 使用 Test::Exception 测试异常
  • 使用 prove 运行测试

最佳实践

  • 使用 CPAN 模块替代手写功能
  • 使用 Path::Tiny 处理文件路径
  • 使用 Try::Tiny 替代 eval 异常处理
  • 使用 Moo / Moose 面向对象编程
  • 使用 DBI + DBD 访问数据库
  • 使用 Mojolicious / Dancer2 构建 Web 应用
Skills enregistrées