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

时间:2013-07-30 16:20:20

标签: perl sublimetext2 sublimelinter

我正在使用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}"
            ]
        }
    }
}
}

但这没有用。

2 个答案:

答案 0 :(得分: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-

答案 1 :(得分:1)

应为sublime text 3

更新这些答案

打开偏好设置 - >包装设置 - > SublimeLinter->设置 - 用户。

找到此条目,并将/ path /替换为/ my / project

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