1

我试图弄清楚在这个简单的语句中到底在处理什么:

sub testReturn {
    return sub {
        my $val = shift;
        return $val;
    }
}

什么时候

my $num = testReturn(1);
print $num;

被调用,它输出:

CODE(0x9c63b34)

当我试图让它简单地返回 1 的值。谢谢。

4

1 回答 1

7

您的函数返回另一个函数作为匿名代码块。您可以调用该代码为您做一些事情,如下所示:

my $anonsub = testReturn(); # $anonsub is CODE object
my $num = &$anonsub(1);      # here this code is called
print $num;
于 2012-10-23T05:30:08.643 回答