【问题标题】:Perl Moose - How do I deploy my class pm file?Perl Moose - 如何部署我的类 pm 文件?
【发布时间】:2011-07-17 00:03:50
【问题描述】:

我正在尝试学习 Moose,需要知道如何正确部署我的类 pm 文件。

我的意思是我创建了一个 Person.pm。

如果它与我的 main.pl 脚本在同一文件夹中执行 use Person,我可以在我的主包中调用它吗?还是我必须先制作并将其部署到我的@INC perl 模块位置才能使用该文件?

我希望在我的本地文件夹中创建 pm 类文件,然后在该文件夹中使用我的程序 main.pl 调用它们。

我该怎么做呢?

【问题讨论】:

  • “如果它与我的 main.pl 脚本在同一个文件夹中,我可以在我的主包中调用它吗?” - 当然,回答这个问题的最佳方法就是尝试一下。

标签: perl moose


【解决方案1】:

Perl 确实默认将. 作为@INC 中的第一项,因此可以并行使用。如果你想更精致一点,可以使用FindBinuse 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    相关资源
    最近更新 更多