我试图找出在这个简单的声明中正在处理什么:
sub testReturn {
return sub {
my $val = shift;
return $val;
}
}
Run Code Online (Sandbox Code Playgroud)
什么时候
my $num = testReturn(1);
print $num;
Run Code Online (Sandbox Code Playgroud)
被称为,它输出:
CODE(0x9c63b34)
Run Code Online (Sandbox Code Playgroud)
当我试图让它只返回值1.谢谢.
您的函数将另一个函数作为匿名代码块返回.您可以调用该代码为您做一些事情,如下所示:
my $anonsub = testReturn(); # $anonsub is CODE object
my $num = &$anonsub(1); # here this code is called
print $num;
Run Code Online (Sandbox Code Playgroud)