为 SublimeLinter 添加自定义路径到 Perl 库

Posted

技术标签:

【中文标题】为 SublimeLinter 添加自定义路径到 Perl 库【英文标题】:Add custom path to Perl libraries for SublimeLinter 【发布时间】:2013-07-30 21:54:41 【问题描述】:

我正在使用 Sublime Text 2 编辑器进行 Perl 开发,现在我面临下一个问题。我有我的项目:

/home/alex/workspace/

在这个项目中,我有以下库:

/home/alex/workspace/lib/

当我在编辑文件时:

/home/alex/workspace/test.pl

在这个文件中我尝试加载库:

/home/alex/workspace/lib/myLib.pm

我有这样的代码:

#!/usr/bin/perl
use myLib;

sublimelinter 无法找到该库,因为它不在默认的@INC 路径中。有没有办法在不更改我的脚本源代码的情况下修改 Perl 的 @INC for sublimelinter?

我尝试将per-project settings 用于这样的 linter:


"folders":
[
    
        "path": "/home/alex/workspace"
    
],
"settings":

    "SublimeLinter":
    
        "Perl" :
        
            "lint_args":
            [
                "-I", "/home/alex/workspace/lib",
                "-c",
                "filename"
            ]
        
    


但这无济于事。

【问题讨论】:

您可以将/home/alex/workspace/lib 附加到PERL5LIB 环境变量中。但请确保 PERL5LIB 是调用脚本的进程环境的一部分。 【参考方案1】:

这些答案应该针对 sublime text 3 更新

打开首选项->包设置->SublimeLinter->设置-用户。

找到这个条目,并替换 /path/to/my/project

  "linters": 
        "perl": 
            "include_dirs": ["/path/to/my/project"]
        '

【讨论】:

【参考方案2】:

这应该可行。不过可能有更好的做法,我不是专家。

#!/usr/bin/perl
use strict;
use warnings;
use lib "/home/alex/workspace/lib/";
use myLib;

这是一个链接:http://perldoc.perl.org/lib.html

这会有一些可移植性问题,但这个问题还有一些其他相关的答案:How can my Perl script find its module in the same directory?

另一个好来源http://learn.perl.org/faq/perlfaq8.html#How-do-I-add-a-directory-to-my-include-path-INC-at-runtime-

【讨论】:

使用use lib "lib/myLib"; 会更好吗?为了可移植性,完整路径中的硬编码通常不好...... 看起来use lib 必须有一个目录作为输入,但你可以这样做use lib "./lib" 其实这并不是我想要的。我的要求是以某种方式配置 sublime linter 以避免更改项目中的每个文件。 @Matt 我明白了。我的 Perl 有点生疏了,用 Python 可以import .lib.myModule 全部在一行 运行这个或者把它放到你的 .bashrc export PERL5LIB=/home/alex/workspace/lib/

以上是关于为 SublimeLinter 添加自定义路径到 Perl 库的主要内容,如果未能解决你的问题,请参考以下文章

在 SublimeLinter 的 sublimelinter_executable_map 中设置相对路径

SublimeLinter-Rubocop 即使在启用并且路径中有 rubocop 时也不会运行

SublimeLinter 忽略缺少的分号

如何选择自定义 .jscsrc 文件

添加自定义DLL搜索路径@应用启动

可以在文件”另存为“的弹出窗口上添加自定义的路径选择按钮?