返回一个返回标量值的匿名函数

时间:2012-10-23 05:19:39

标签: perl

我想弄清楚在这个简单的陈述中究竟处理了什么:

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

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

,输出:

CODE(0x9c63b34)

当我试图让它只返回值1.谢谢。

1 个答案:

答案 0 :(得分:7)

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

my $anonsub = testReturn(); # $anonsub is CODE object
my $num = &$anonsub(1);      # here this code is called
print $num;