perl - 如何运行由 Module::Starter 构建的新 Perl 程序?

标签 perl

我使用 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/

相关文章:

Perl删除目录中的所有文件

perl - 如何调用带有预分配给某个值的变量的子程序?

perl - Perl 单元测试只针对模块而不是程序吗?

mysql - 为什么mysql和perl的base64字符串编码不同?

windows - 如何在 Perl 中打印六角星?

perl - 使用 Perl 和 PDF::API2 生成多页 PDF 的最佳方法是什么?

perl - 在 Perl 中,为什么我需要 Exporter?

ajax - 如何使用 HTML::FormFu 进行 jQuery AJAX 表单验证?

perl - 如何访问该数据结构中的元素?

perl - Perl 的标量逗号运算符什么时候有用?