我正在使用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}"
]
}
}
}
}
但这没有用。
答案 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"]
}'