小编Fra*_*345的帖子

Perl 中如何检查函数参数是字符串还是数组

我正在尝试用 Perl 编写自定义validateParameter函数。我有以下代码也可以工作:

sub validateParameter {
    my ($args, $list) = @_;
    
    if ( ref($list) eq "ARRAY" ) {

        foreach my $key (@$list) {
            if ( not defined $args->{$key} ) {
                die "no $key given!";
            }
        }
    } 
    #elsif ( check if string ) {
    #}
}
Run Code Online (Sandbox Code Playgroud)

我想通过以下方式调用我的函数:

validateParameter({ hallo => "Welt", test => "Blup"},  ["hallo", "test"]);
Run Code Online (Sandbox Code Playgroud)

但我也想这样调用我的函数:

validateParameter({ hallo => "Welt", test => "Blup"},  "hallo");
Run Code Online (Sandbox Code Playgroud)

我知道 Perl 只有以下三种数据类型(标量、散列、数组)。但也许有一种聪明的方法来检查变量是否是字符串。

如何检查给定的 arg 是否是字符串?

perl arguments function subroutine

4
推荐指数
1
解决办法
8689
查看次数

如何在Perl中验证函数参数?

你能告诉我Perl中哪些是验证功能参数最聪明的方法吗?

代码片段:

sub testfunction {
    my ($args) = @_;
    my $value = $args->{value} || die "no value set";
    # process value ...
}


testfunction({value => 'Hallo'});

testfunction({novalue => 'Hallo'});
Run Code Online (Sandbox Code Playgroud)

以上方式是在perl中验证函数参数的一个很好的替代方法还是有更聪明的方法?非常感谢大家.

validation perl function function-parameter

2
推荐指数
1
解决办法
598
查看次数