包内的perl包

时间:2014-04-21 21:15:32

标签: perl perl-module

我需要创建一个将由其他包使用的公共包,例如:

common_1.pm有:

package common;
use test1;
use test2;

并将此常用包用于其他包中,如下所示:

test_case1.pm的内容:

package test_case1;
use common; // this should use test1 and test2
use test3;
use test4;

每个测试* .pm再次是一个单独的Perl模块,我可以像上面那样编写包吗?我是Perl的新手,感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

是的,可以做到;此类事例包括Modern::PerlTest::ModernGID

我建议使用Syntax::CollectorImport::Into作为构建此类模块的工具。

以下是使用Syntax :: Collector:

如何完成的示例
package common;
use Syntax::Collector -collect => q{
use test1 0;
use test2 0;
};
1;

或使用Import :: Into:

package common;
use Import::Into;
use test1;
use test2;
sub import {
   my $caller = shift;
   test1->import::into($caller);
   test2->import::into($caller);
}
1;

也就是说,如果test1test2实际上是面向对象的模块(即它们是类或角色),则根本不需要导入它们,因此以下内容就足够了: / p>

package common;
use test1;
use test2;
1;