如何在不安装的情况下使用本地库中的模块?

时间:2018-01-16 07:54:42

标签: perl xs

我有一个XS模块。使用./Build构建后,Module.so将放入blib/arch/auto/XS目录。

Module.pm我有:

require XSLoader;
XSLoader::load( 'Module', $VERSION );

我运行程序为:

$ perl -Iblib/lib -MModule -e 'my $x; $x=1'

$ perl -Iblib -MModule -e 'my $x; $x=1'

在这两种情况下,都会使用先前安装到系统的模块。

我应该使用哪个选项来运行Module.so中的blib/arch/auto代码?

UPD
我尝试使用blib中的模块,因为在使用XS

开发和实验期间我无需安装它

1 个答案:

答案 0 :(得分:1)

我撬开xstut

perl -MExtUtils::Command::MM -e "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t

然后here

 test_harness($verbose, @test_libs);
     

通过Test :: Harness通过$ verbose标志运行@ARGV上的测试。任何@test_lib都将被移植到测试的@INC。

所以我应该将两个路径都包含在@INC中:

$ perl -Iblib/lib -Iblib/arch -MModule -e 'my $x; $x=1'

<强> UPD
正如@Borodin所说,更好的解决方案是使用blib模块:

$ perl -Mblib -MModule -e 'my $x; $x=1'