如何确定perl函数nothing不返回undef?
例子:
sub test {
return;
}
Run Code Online (Sandbox Code Playgroud)
要么
sub test {}
Run Code Online (Sandbox Code Playgroud)
问题是,好奇的行为函数也可以返回字符串,列表......并且是外包的一部分.所以我无法检查,test() || undef因为空列表或字符串将被覆盖undef.
有没有人知道如何检查"null"值,所以我可以创建一个条件异常?
如果使用
return并且未指定返回值,则子例程将在列表上下文中返回空列表,在标量上下文中返回未定义的值,或在void上下文中返回任何内容.如果
return找不到,并且最后一个语句是表达式,则返回其值.如果最后一个语句是一个循环控制结构,如aforeach或awhile,则返回的值未指定.空子返回空列表.
- perlsub
在两种情况下,它都将返回空列表.所以你无法区分它们.
如果我理解正确你,你试图避免使用undef覆盖空列表test () || undef.但那没关系.在Perl中,空列表和undef都被视为false.
以下全部评估为假
0
'0'
undef
'' # Empty scalar
() # Empty list
('')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
582 次 |
| 最近记录: |