有没有办法将Moose提供的默认构造函数重命名为"new"以外的其他东西?
我想这样做是为了使脚本更加用户友好,因为将构造函数命名为不同的东西更有意义(比如"make_thing")
my $object = Class->make_thing();
我怎样才能做到这一点?
让我举个例子说明这可能对用户更友好......
假设我正在构建一个处理CVS存储库信息的模块,该模块称为"CVS".我可以使用创建存储库的实例
$repository = CVS->new()
或者,如果我可以更改构造函数的名称,我可以称之为
$repository = CVS->get_repository()
这将使用户更具逻辑意义.
有时候有替代构造函数是有意义的.例如,如果你看一下Net :: Works :: Network,它有new_from_string
和new_from_integer
方法.new
除非你有充分的理由,否则我会远离使用其他东西.话虽如此,如果您认为它对用户更有帮助,您可以添加一种便捷方法.
sub get_repository { my $class = shift; return $class->new( @_ ); }