我正在尝试学习Moose,并且需要知道如何正确部署我的类pm文件。
我的意思是我创建了一个Person.pm。
我是否可以在我的主程序包中调用它,如果它与我的main.pl脚本在同一文件夹中执行使用Person;或者我必须做一个make并将其部署到我的@INC perl模块位置才能使用该文件?
我希望在我的本地文件夹中创建pm类文件,然后只需使用我的程序main.pl在该文件夹中调用它们。
我将如何做到这一点?
答案 0 :(得分:10)
Perl默认将.
作为@INC
中的第一项,因此并排可行。如果您想要更复杂,可以使用FindBin
和use lib
:
#!/usr/bin/env perl
use strict;
use warnings;
use FindBin;
use lib "$FindBin::Bin/lib";
# Main program continues...
现在将lib/
中的模块放在与脚本相同的目录中,您的脚本将会看到它们。这可以使您的库模块和脚本分开。如果您正在编写测试,则可以使用t/
库,测试脚本的开头如下:
use strict;
use warnings;
use FindBin;
use lib "$FindBin::Bin/../lib";
use Test::More;
# other test modules, your plan, etc.
您的测试也会在图书馆模块的正确位置找到。
您还可以使用PERL5OPT=-I/path/to/some/library
将该路径添加到@INC
,然后根本不需要use lib
。