私は属性を持っているので、すべての入力値に対して強制的に発砲したいと思います。 0.72より前は、Str
をStr
から強制して行われました。この機能が削除されたとき、私はMeta::TypeConstraint
ファイルをハードハッキングして、実動コードを動作させ続けました。 Moose 2.0
ムースすべての入力に対してどのように強制的な発砲をしますか?
のリリース以来、私は単純に、この変更は、ムースV2で同じ変更が機能しないことをすること、しかし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(@_);
}
をコメントアウトするために使用しました。私はregexesでクリーンアップしたいと知っているフィールドのためにこの機能を使用しています。しかし、それが準拠するかどうかを確認するのはほとんど(ほとんど)合致しないため、ほとんど意味をなさない。このメソッドは、文字列の正規表現を実行するか、文字列を再フォーマットするなどの簡単な処理に使用します(これは実世界のお金表記をdbが使用できるものにすることができます)。あなたは、私は時間光栄医師のジョークにあなたを参照してください。その場合には、その副作用のために型変換を使用している場合、私はすべての入力に起動するように型変換を望むためと考えることができ
あなたは自分のアクセサリーを作ることはできませんか? ' – ikegami