如果在Moose的构造函数调用中有额外的参数而不是属性,有没有办法死?例如,这个:
package Shoe; use Moose; has 'size' => (is => 'ro',isa => 'Num'); has 'color' => (is => 'ro',isa => 'Str',default => 'brown'); 1;
会死的
my $sneaker = Shoe->new(size => 11,colour => 'white');
因为颜色不是鞋子的属性.
我可以发誓我已经看过一个模块或者其他什么来做这件事,但我找不到它.
解决方法
对我来说工作
MooseX::StrictConstructor:
package Shoe; use Moose; use MooseX::StrictConstructor; # <-- that's all what need has 'size' => (is => 'ro',isa => 'Str'); 1; package main; my $sneaker = Shoe->new(size => 11,colour => 'white'); #blows up