我很确定我读到的地方有可能,但有一些问题你需要注意。不幸的是,我找不到描述你需要做什么的教程或页面。我查看了Perl tutorials,但没有找到我记得读过的那个。有人可以指向我描述如何将多个包放入单个.pm文件的页面或文档吗?
答案 0 :(得分:35)
这就是我通常的做法:
use strict;
use warnings;
use 5.010;
{
package A;
sub new { my $class = shift; bless \$class => $class }
sub hello { say 'hello from A' }
}
{
package B;
use Data::Dumper;
sub new { my $class = shift; bless { @_ } => $class }
sub hello { say 'Hello from B + ' . shift->dump }
sub dump { Dumper $_[0] }
}
$_->hello for A->new, B->new( foo => 'bar' );
答案 1 :(得分:16)
您只需使用另一个包语句启动新包:
package PackageOne;
# ...... code
package PackageTwo;
# .... more code
答案 2 :(得分:5)
这对我有用:
#!/usr/bin/perl
use strict;
use warnings;
{
package A;
use Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(a_sub);
our @EXPORT = qw(a_sub);
sub a_sub {
# your code ...
}
}
{
package B;
use Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(b_sub);
our @EXPORT = qw(b_sub);
sub b_sub {
# your code ...
}
}
# Main code starts here ##############
use boolean;
use Data::Dumper;
import A qw(a_sub);
import B qw(b_sub);
a_sub();
b_sub();
重要的一点是,不是使用“使用”,而是将其更改为“导入”(这样它就不会去尝试查找文件)。
答案 3 :(得分:2)
如何操作:只需发出多个package
说明。
我能想到的问题:my
- 变量不是包本地化的,所以无论如何它们都是共享的。在您发布任何内容之前,默认情况下您都在main
个包中。