我有一個屬性,我想對每個輸入值進行強制激發。在0.72之前,這是通過強制Str
從Str
完成的。當這個功能被刪除時,我採取了硬編碼的Meta::TypeConstraint
文件來保持生產代碼的正常工作。由於Moose 2.0
駝鹿你怎麼對每一個輸入做出強制性的攻擊?
釋放我以前只是讓這種變化註釋掉return $_[0] if $self->check($_[0]);
sub coerce {
my $self = shift;
my $coercion = $self->coercion;
unless ($coercion) {
require Moose;
Moose->throw_error("Cannot coerce without a type coercion");
}
#return $_[0] if $self->check($_[0]);
return $coercion->coerce(@_);
}
然而,使得穆斯V2相同的變化不起作用。我正在使用此功能來處理我想用正則表達式清理的字段。然而,檢查它們是否符合是沒有意義的,因爲(幾乎)沒有一個符合要求。我使用這種方法來處理簡單的事情,比如在字符串上運行正則表達式,或者重新格式化字符串(它可以表示現實世界中的貨幣符號,以便db可以使用)。
難道你不能只做自己的存取? `foo =>(accessor =>'_foo',handles => {foo => sub {...},},);` – ikegami 2011-12-15 04:28:26