クラス メソッド呼び出しで名前付きパラメーターを使用していますが、不明なパラメーターが渡されないようにするためのベスト プラクティスがあるかどうか疑問に思っていました。これが私がやっていることです
sub classmethod {
my $self = shift;
my %args = (
"param1" => "default1",
"param2" => "default2",
@_
)
if (my @invalid = grep { !/^(param1|param2)$/ } keys %args) {
croak "received unknown arg(s) ".join(",", @invalid)." from ".caller();
}
}
それは前進するための適切な方法ですか、それともパフォーマンスの問題を引き起こす可能性がありますか?
最高、マーカス