我使用 Module::Starter
为自己构建了一个新的 Perl 模块,它在 lib/中有以下源代码文件:
Foo/Bar.pm
Spam.pm
我在 t/Bar.t
中创建了两个测试用例来测试 Foo/Bar.pm
。我跑了:
perl Makefile.PL && make && make test
说明我的2个测试用例都通过了。
Bar.pm 定义:
package Foo::Bar;
Spam.pm 是这样使用的:
use Foo::Bar qw(fun);
尽管测试用例可以找到 Foo::Bar 没有问题,但是当我通过 perl Spam.pm
单独运行 Spam.pm 时,它报告无法在 @INC 中找到 Foo::Bar .
我做错了什么?
最佳答案
<project root>/lib
通常不在您的包含路径中(您的 @INC
设置)。 make test
将包含它(实际上是 blib/lib
),但要在模块开发期间将其包含在独立程序中,您必须执行以下操作之一
perl -Ilib lib/Spam.pm
PERL5LIB=lib perl lib/Spam.pm
或者安装它(使用 make install
),这将使文件在包含路径中的目录下可用。
关于perl - 如何运行由 Module::Starter 构建的新 Perl 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12099569/