Sto cercando di capire come far funzionare una funzione di riferimento per un modulo Perl. So come farlo al di fuori di un modulo, ma all'interno di uno? Considerate il codice come questo:Come scrivere un riferimento di funzione in un modulo Perl?
==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===
Guardate le linee 5-6 di cui sopra. Qual è la sintassi corretta per (1) definire il riferimento alla funzione in primo luogo e (2) dereferenziarlo?
La cosa importante da notare in questo stile chiamata è che '$ self' è non usato per determinare quale metodo chiamare (come di solito accade quando si chiama un metodo stile OO) - il metodo è determinato esclusivamente da '$ ref', e' $ self' viene semplicemente passato come primo argomento di $ ref. Contrariamente a ciò, se $ ref è semplicemente il nome di un metodo, nel qual caso inizieremo a cercare quel metodo su '$ self' e poi su nell'albero dell'ereditarietà. – Ether
In aumento per essere Randal "one-L" Schwartz! Sìì! –
@Jonathan: non trasformiamo SO [perl] in un gruppo di groupie che sbavano. I fan di Jon Skeet sono già abbastanza cattivi. :/ – Ether