我试图用我的自定义函数validateParameter
函数与perl。 实际我有下面的代码也可以工作:如何检查函数参数是否是perl中的字符串
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");
如何检查给定的arg是否为“字符串”?我知道Perl只有以下三种数据类型(标量,哈希,数组)。但也许有一个聪明的方法来检查一个变量是否是一个字符串。
感谢大家。
你的意思是“字符串”而不是“数字”?或“字符串”,而不是“arrayref/hashref/...”?然后['ref'](http://perldoc.perl.org/functions/ref.html)是要走的路(如你已经做的那样)。它为简单的非ref标量返回一个空字符串(比如'$ list')。 – PerlDuck
哦,好吧,我的错:D。这篇文章完成了。谢谢@PerlDuck –