【发布时间】:2011-03-13 02:42:58
【问题描述】:
我发现自己反复编写和重写以下类型的代码:
my %default = (x => "a", y => "b");
sub new
{
my ($package, $config) = @_;
my $self = {%default};
for my $k (keys %default) {
$self->{$k} = $config->{$k} if defined $config->{$k};
}
for my $k (keys %$config) {
if (! exists $default{$k}) {
carp "Unknown config option $k\n";
}
}
bless $self;
# etc. etc.
}
在我制作自己的模块来执行此操作之前,我只是想知道 CPAN 上是否已经有类似的东西?我只想要上面这个非常简单的功能,所以建议使用 Moose 不是这个问题的合适答案。
【问题讨论】: