我正在尝试用 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中哪些是验证功能参数最聪明的方法吗?
代码片段:
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中验证函数参数的一个很好的替代方法还是有更聪明的方法?非常感谢大家.