$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' и любую другую структуру блока, когда она находится в не-void контексте –
Всего Perl возврат 5 Подпрограммы последнее значение выполненного последнего оператора.
... если они не попадают в оператор 'return' – friedo
@friedo: если они попали в оператор' return' , каково последнее утверждение? : P –
Ну, тем менее странный способ сказать, что это результат последнего оцененного выражения. Это может быть не последнее значение, поскольку подпрограммы могут возвращать несколько элементов. –
Надеюсь, вы находитесь в другом месте вашего кода, и мы просто не видим его в фрагменте, но вы должны включить 'use strict; используйте предупреждения: ' – Daenyth