Perl 的新手再次来到这里,试图closure
在 Perl 中理解。
所以这是一个我不明白的代码示例:
sub make_saying {
my $salute = shift;
my $newfunc = sub {
my $target = shift;
print "$salute, $target!\n";
};
return $newfunc; # Return a closure
}
$f = make_saying("Howdy"); # Create a closure
$g = make_saying("Greetings"); # Create another closure
# Time passes...
$f->("world");
$g->("earthlings");
所以我的问题是:
- 如果将变量分配给函数,它是否会自动引用该函数?
- 在上面的代码中,我可以改写
$f = \make_saying("Howdy")
吗?我什么时候可以使用,&
因为我尝试在传递参数(&$f("world")
)中使用它,但它不起作用。 - 最后,在上面的代码中,他**如何执行单词
world
并附earthlings
加到单词howdy
andgreetings
。
注意:我知道 $f 有点绑定到带有参数的函数,howdy
所以这就是我理解如何world
附加的。我不明白的是里面的第二个功能。那个人如何发挥它的魔力。对不起,我真的不知道怎么问这个。