大佬教程收集整理的这篇文章主要介绍了perl – 如何区分未传递的参数和使用false值传递的参数?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
(通常我喜欢歧义,但在这种情况下我生成SQL所以我想用NULL替换未定义的args,但将0保留为0)
所以这是含糊不清的:
sub mysub { my $arg1 = shift; if ($arg1){ print "arg1 could have been 0 or it could have not been passed."; } }
到目前为止,这是我最好的解决方案……但我认为这有点难看.我想知道你是否能想到一种更清洁的方式,或者这对你来说是否合适:
sub mysub { my $arg1 = (defined shift) || "NULL"; if ($arg1 ne "NULL"){ print "arg1 came in as a defined value."; } else { print "arg1 came in as an undefined value (or we were passed the String 'NULL')"; } }
sub mysub { my ($arg1) = @_; if (@_ < 1) { print "arg1 wasn't passed at all.\n"; } elsif (!defined $arg1) { print "arg1 was passed as undef.\n"; } elsif (!$arg1) { print "arg1 was passed as a defined but false value (empty String or 0)\n"; } else { print "arg1 is a defined,non-false value: $arg1\n"; } }
(@_是函数的参数数组.这里将它与1进行比较是计算数组中元素的数量.我故意避免移位,因为它改变了@_,这将要求我们存储原始大小@_某处.)
以上是大佬教程为你收集整理的perl – 如何区分未传递的参数和使用false值传递的参数?全部内容,希望文章能够帮你解决perl – 如何区分未传递的参数和使用false值传递的参数?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。