我正在尝试使用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 ) {
#}
}
我想以以下方式调用我的函数:
validateParameter({ hallo => "Welt", test => "Blup"}, ["hallo", "test"]);
但我也想像这样调用我的函数:
validateParameter({ hallo => "Welt", test => "Blup"}, "hallo");
我知道Perl只有以下三种数据类型(标量,哈希和数组)。但也许有一种聪明的方法来检查一个变量是否为字符串。
如何检查给定的参数是否为字符串?
ref
就是要走的路线(就像你已经做过的那样)。它对于简单的非 ref 标量(比如你的$list
)返回一个空字符串。 - PerlDuck