4
雖然試圖瞭解關閉,讀通perl-faq和coderef
在perlref發現這些例子:
sub add_function_generator {
return sub { shift() + shift() };
}
my $add_sub = add_function_generator();
my $sum = $add_sub->(4,5);
和
sub newprint {
my $x = shift;
return sub { my $y = shift; print "$x, $y!\n"; };
}
$h = newprint("Howdy");
&$h("world");
這裏有兩種形式調用存儲在一個變量的函數。
&$func($arg)
$func->($arg)
那些是完全等同的(僅語法不同),或者這裏有一些區別在哪裏?
+10提及'@ _'的可見性。 – jm666
perl -MB = Deparse的結果可能更容易閱讀,並且還顯示兩個變體被認爲是相同的,例如, deparse將$ func - >()轉換爲&$ func() –