4
, 폐쇄을 이해하려고 노력 perl-faq 통해 읽고 perlref에 coderef
그 예를 찾을 수 있지만 :
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()로 변환합니다. –