$hi = do_this('asdf');
sub do_this
{
$blob{'f'} = {
'k' => 'j'
};
}
print $hi->{'k'};
# prints j
由于do_this不返回任何内容,它仍然如何打印j?这个Perl函数为什么会返回一个值?
$hi = do_this('asdf');
sub do_this
{
$blob{'f'} = {
'k' => 'j'
};
}
print $hi->{'k'};
# prints j
由于do_this不返回任何内容,它仍然如何打印j?这个Perl函数为什么会返回一个值?
http://perldoc.perl.org/functions/return.html
在没有显式的返回的, 子例程,EVAL,还是FILE 自动返回评价
也''做BLOCK'和任何其他块结构,当它在非空的情况下 – 2010-09-24 22:19:10
所有Perl 5级中的子例程返回的 最后一个表达式的值最后执行的语句的最后一个值。
...假设他们没有命中'return'语句 – friedo 2010-09-24 19:10:41
@friedo:如果他们击中'return'语句,最后执行的声明是什么? :P – 2010-09-24 19:21:57
好吧,说这是最后评估表达式的结果的方式不那么奇怪。这可能不是“最后的值”,因为子程序可以返回多个项目。 – 2010-09-24 19:33:26
希望你在你的代码中的其他地方,我们只是没有在代码片段中看到它,但你应该包括'use strict;使用警告;' – Daenyth 2010-09-24 19:15:00