9
sub f {
    # some code here
    () 
}

() 在这个 Perl 子例程中是什么意思?

4

2 回答 2

16

sub 中的最后一个表达式将是返回值。这确保(假设没有先前return的语句)子返回一个空列表(而不是前一行代码中的任何内容)。

于 2013-06-07T11:19:07.087 回答
1

好的...所以这可能是病态的,但这我们正在谈论的 Perl...

根据“# some code here”的实际文本,它可能会产生一个取消引用的 CODE 引用,在这种情况下,parens 将导致 CODE 以零参数调用,并且该代码的返回值将是返回值的“f”。

例如,以下将打印出一个小写的“a”:

    sub f {
        &{sub { return $_[0] }}
       (@_)
    }

    print f(qw( a b c d e f )), "\n";
于 2013-06-08T00:10:32.590 回答