Sublime Text 需配置自定义 Build System 才能运行 Perl 脚本,核心是正确设置 perl 可执行文件路径和使用 "$file" 传入绝对路径;需确保系统已安装 Perl 并加入 PATH,保存为 Perl.sublime-build 后手动切换或重启生效。

Sublime Text 本身不内置 Perl 运行支持,但可以通过配置 Build System 实现一键运行 Perl 脚本。关键不是装插件,而是让 Sublime 知道去哪里找 perl 可执行文件,并正确传入当前文件路径。
确认系统已安装 Perl 并能命令行调用
这是前提。如果终端里输入 perl -v 报错“command not found”,Sublime 就不可能运行成功。
-
macOS:默认不带 Perl 5.30+,推荐用
brew install perl(会装到/opt/homebrew/bin/perl或/usr/local/bin/perl) - Windows:安装 Strawberry Perl 或 ActivePerl 后,确保安装路径(如
C:\Strawberry\perl\bin\perl.exe)已加入系统PATH - Linux:多数发行版自带,检查
which perl输出,常见为/usr/bin/perl
创建自定义 Perl Build System
Sublime 的构建系统本质是 JSON 配置,告诉它执行哪条命令、工作目录在哪、怎么捕获输出。
- 菜单栏选择 Tools → Build System → New Build System…
- 替换全部内容为以下配置(注意修改
cmd中的 Perl 路径以匹配你本地实际路径):
{
"cmd": ["perl", "$file"],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"working_dir": "$file_path",
"selector": "source.perl",
"shell": true
}
保存为 Perl.sublime-build(自动存到 Packages/User/ 目录)。之后在 Tools → Build System 下就能选中它。
为什么 $file 不能写成 "$file_name" 或漏掉引号
常见错误是路径含空格或特殊字符时构建失败,或只传了文件名没传完整路径。
-
$file展开为绝对路径(如/Users/me/test.pl),Perl 才能正确定位脚本 -
$file_name只是test.pl,没有路径,perl test.pl会在当前工作目录找,大概率报Can't open script -
cmd是数组,每个元素单独传给 shell;写成"perl $file"(字符串)且"shell": true虽然也能跑,但不如数组形式健壮,尤其 Windows 下易出编码或空格问题
运行时看不到输出?检查控制台和编码
按下 Ctrl+B(Windows/Linux)或 Cmd+B(macOS)后没反应,或输出乱码,通常有三个原因:
- 构建系统未被选中:右下角状态栏应显示
Perl,不是Automatic或其他 - 脚本本身无输出:加一句
print "hello\n";测试 - 终端编码不一致(尤其 Windows):在构建配置里加
"encoding": "cp936"(简体中文 Windows)或"encoding": "utf-8"(macOS/Linux),否则中文 print 会显示为\x{4f60}\x{597d}类似内容
真正容易被忽略的是:Sublime 的构建系统不会自动 reload 修改后的 Perl.sublime-build 文件,改完必须重启 Sublime 或手动切换一次构建系统才能生效。










