我在类方法调用中使用命名参数,想知道是否有最佳实践来确保不传递未知参数。这就是我正在做的
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();
}
}
这是一种正确的前进方式,还是会导致性能问题?
最好的,
马库斯
你可以使用参数::验证 http://search.cpan.org/~drolsky/Params-Validate-1.08/lib/Params/Validate.pm。另一种选择是参数::检查 http://search.cpan.org/~bingos/Params-Check-0.38/lib/Params/Check.pm
如果参数是固定的,那么最好在开发过程中验证它们,并可以选择在运行时关闭验证。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)