【发布时间】:2010-08-11 16:11:10
【问题描述】:
假设您在一个文件中有一个父 Perl 类:
#!/usr/bin/perl
package Foo;
use strict;
use warnings;
use Data::Dumper;
sub new{
my $class = shift;
my %self = ();
return bless %self, $class;
}
1;
和不同文件中的子类:
#!/usr/bin/perl
package Bar;
use base "Foo";
1;
子类会继承父类的 use 语句吗?我知道方法 new 将被继承。
基本上,我试图减少代码中的样板数量,但我找不到这个问题的明确答案。
【问题讨论】:
-
我询问此功能是因为 Test::Most 和 Moose 声称可以这样做,但我还没弄清楚他们是如何做到的。
-
看一下Test::Most中的import()方法。它就是这样做的。它手动加载所有这些样板模块并将它们向上导出两个级别。
-
感谢大家的帮助!进口潜艇是关键。 (我可能只是为了节省自己未来的痛苦,然后去驼鹿)。
-
如果你不去 Moose,你可能需要考虑
use parent "Foo";而不是use base
标签: perl