[18] Qual è la differenza tra il deep binding (legame profondo) e lo shallow binding (legame superficiale)?
Nel deep binding, le variabili lessicali che vengono nominate nelle procedure
anonime sono le stesse che si trovavano nello scope quando la procedura
è stata creata. Nello shallow binding, esse sono una qualsiasi
variabile con lo stesso nome, a cui capita di trovarsi nello scope quando
la procedura viene chiamata. Il Perl usa sempre il deep binding delle
varaibili lessicali (cioè quelle create con my()). Ad ogni modo,
le variabili dinamiche (dette anche globali, locali, o variabili package)
sono effettivamente fatte oggetto di shallow binding. Considerate questa
un'ulteriore ragione per non usarle. Guardate la risposta a
"Cos'è una chiusura?"
Copyright (c) 1997, 1998, 1999, 2000, 2001 Tom Christiansen e Nathan
Torkington. Tutti i diritti riservati.
Questa documentazione è libera; puoi ridistribuirla e/o
modificarla secondo gli stessi termini applicati al Perl.
Indipendentemente dalle modalitè di distribuzione, tutti gli esempi di
codice in questo file sono rilasciati al pubblico dominio. Potete, e
siete incoraggiati a farlo, utilizzare il presente codice o qualunque
forma derivata da esso nei vostri programmi per divertimento o per profitto.
Un semplice commento nel codice che dia riconoscimento alle FAQ sarebbe cortese
ma non è obbligatorio.
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per
porre quesiti di tipo tecnico, per rimanere aggiornato su meeting,
incontri, manifestazioni e novità su Perl.it. Iscriviti!