Perl:命名参数验证最佳实践

标签 perl validation parameters named

我在类方法调用中使用命名参数,想知道是否有最佳实践来确保不传递未知参数。这就是我正在做的事情

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/

相关文章:

c++ - 为 const 输入参数传递非常量对象?

Perl打开: how to forward stderr to stdout?

linux - 无法安装 Net::SSH2 perl 模块

javascript - 动态改变 Angular 2 Validators.maxLength 的 maxLength 值

JQuery 验证帮助

Java 泛型和原始类型

java - 将 Integer.MAX_VALUE+1 参数传递给方法时防止溢出 (int var)

perl - 使用 exec 的返回代码不会返回

json - 如何递归搜索与给定模式匹配的所有节点的 JSON 文件并将 JSON 'path' 返回到节点及其值?

javascript - 当表单提交禁用按键输入时,如何按输入在文本区域上向下行