【问题标题】:Add custom path to Perl libraries for SublimeLinter为 SublimeLinter 添加自定义路径到 Perl 库
【发布时间】: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 是调用脚本的进程环境的一部分。

标签: perl sublimetext2 sublimelinter


【解决方案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/
    猜你喜欢
    • 2019-07-18
    • 1970-01-01
    • 2023-02-10
    • 1970-01-01
    • 2020-01-31
    • 2018-09-10
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多