Próbuję dowiedzieć się, jak wykonać pracę odwołań funkcji dla modułu Perla. Wiem, jak to zrobić poza modułem, ale w środku? Rozważmy kod taki jak ten:Jak napisać odwołanie do funkcji w module Perla?
==mymodule.pm==
1 sub foo { my $self = shift; ... }
2 sub bar { my $self = shift; ... }
3 sub zip {
4 my $self = shift;
5 my $ref = \&foo;
6 $self->&$foo(); # what syntax is appropriate?
7 }
==eof===
Spójrz na linie 5-6 powyżej. Jaka jest poprawna składnia dla (1) zdefiniowania odwołania do funkcji w pierwszej kolejności i (2) dereferencji?
Ważne jest, aby pamiętać w tym stylu wywołującego jest to, że jest '$ self' nie używane do określenia, która metoda wywołać (jak to zwykle bywa w przypadku wywoływania metody OO-style) - metoda jest określana wyłącznie z '$ ref', a' $ self' jest jedynie przekazywane jako pierwszy argument $ ref. Porównajmy to, jeśli '$ ref' jest po prostu nazwą metody, w którym to przypadku powinniśmy zacząć szukać tej metody w' $ self', a następnie w drzewie dziedziczenia. – Ether
Przegłosowano na Randal "one-L" Schwartz! Yay! –
@ Jonathan: nie zmieniajmy SO [perl] w grupę śliniących się groupies .. fanboyi Jona Skeeta są wystarczająco złe. :/ – Ether