sub routine1 {
return wantarray ? () : undef;
}
sub routine2 {
return;
}
这两个子程序有什么区别吗?
答案 0 :(得分:5)
答案 1 :(得分:0)
实际上,存在差异......
从Perl Critic查看此链接。
从失败中返回undef 子程序很常见。但如果 子程序在列表中调用 上下文,显性返回undef; 语句将返回一个元素 包含(undef)的列表。如果那样的话 list随后被放入一个布尔值 上下文来测试失败,然后呢 评估为真。但你可能 希望它是假的。
这很微妙,但可能是一个问题。