如何重命名Perl的Moose模块提供的默认构造函数?

时间:2015-12-17 13:48:39

标签: perl constructor moose

有没有办法将Moose提供的默认构造函数重命名为“new”以外的其他内容?

我想这样做是为了让脚本更加用户友好,因为将构造函数命名为不同的东西更有意义(例如“make_thing”)

my $object = Class->make_thing();

我怎样才能实现这一目标?

让我举一个例子说明这可能会对用户更友好......

假设我正在构建一个处理CVS存储库信息的模块,该模块称为“CVS”。我可以用

创建一个存储库实例

$repository = CVS->new()

或者如果我可以更改构造函数的名称,我可以称之为

$repository = CVS->get_repository()

这将使用户更具逻辑意义。

1 个答案:

答案 0 :(得分:5)

有时候有替代构造函数是有意义的。例如,如果您查看Net::Works::Network,则它具有new_from_stringnew_from_integer方法。除非你有充分的理由,否则我不会使用除new以外的其他内容。话虽如此,如果您认为它对用户更有帮助,您可以添加一种便捷方法。

sub get_repository {
    my $class = shift;
    return $class->new( @_ );
}