wantarray

如果当前执行的子程序或 eval 的上下文正在寻找列表值,则返回真。如果上下文正在寻找标量值,则返回假。如果上下文不希望返回值(空上下文),则返回未定义值。

return unless defined wantarray; # don't bother doing more
my @a = complex_calculation();
return wantarray ? @a : "@a";

在文件的最顶层、BEGINUNITCHECKCHECKINITEND 块中,或在 DESTROY 方法中,wantarray 的结果是未定义的。

这个函数应该被命名为 wantlist() 而不是 wantarray()。