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