2014-09-16 2 views
4

속성이 아닌 무스의 생성자 호출에 추가 매개 변수가있는 경우 죽을 수 있습니까? 예를 들어, 다음 : colourShoe의 특성이 없기 때문에무스 클래스의 속성이 아닌 매개 변수를 허용하지 않음

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'); 

죽게한다.

모듈을 보았거나 맹세 할 수는 있지만 굳이 찾을 수는 없습니다. 나를 위해

답변

6

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 
+0

는 정말 고마워요! 나는 그것이 그곳에 있다는 것을 알았고 나는 그 이름을 기억할 수 없었다. 오래된 것을 얻는 것의 위험 ... –

+0

@ BillRuppert - 그래서 10 년 (정확하게) 나는 똑같이 할 것이다;) :) – jm666

관련 문제