为什么没有返回值的函数在perl中有值?

时间:2018-01-17 14:58:05

标签: function perl

我试图理解为什么没有返回值的函数定义了一个值。有人可以解释一下吗?

这是代码:

perl -le 'sub xxx { print 2; } print defined(xxx);'

控制台输出是:

2
1

我原以为返回的值是undef和定义的值....

$ perl -v

This is perl 5, version 22, subversion 1 (v5.22.1) built for x86_64-linux-gnu-thread-multi

1 个答案:

答案 0 :(得分:6)

记录

print以返回值:

  

如果成功则返回true。

并且记录子例程以在没有明确的return时返回最后一个表达式。

  

(如果没有显式返回,子例程,eval或do FILE会自动返回最后一个表达式的值。)