我在类方法调用中使用命名参数,想知道是否有最佳实践来确保不传递未知参数。这就是我正在做的事情
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();
}
}
这是一种正确的前进方式,还是会导致性能问题?
最好, 马库斯
最佳答案
您可以使用Params::Validate 。另一个选项是Params::Check
如果参数是固定的,那么最好在开发过程中验证它们,并可以选择在实时时关闭验证。
关于Perl:命名参数验证最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19514694/