Perl Paraphernalia: namespaces | Cerca per titolo, autore, parola chiave | ||||||||
Perl Paraphernalia: namespaces Di Mark Jason Dominus. Questo articolo è disponibile anche in Italiano. Cet article est également disponible en Français. Dieser Artikel ist auch in deutscher Übersetzung verfügbar. All'inizio, in un periodo intorno al 1960, ogni parte del vostro programma aveva accesso a tutte le variabili presenti in qualsiasi altra parte del programma. Questo si rivelò un problema, così i progettisti di linguaggi inventarono le variabili locali, che erano visibili soltanto in piccole porzioni del programma. In questo modo, i programmatori che usavano una variabile x potevano essere sicuri che nessuno sarebbe stato in grado di alterare i contenuti di x a loro insaputa. Potevano inoltre essere sicuri che usando x non avrebbero alterato per sbaglio la variabile di qualcun altro. Ogni linguaggio di programmazione ha una filosofia, e di questi tempi molte di queste filosofie hanno a che fare con il modo in cui vengono gestiti i nomi delle variabili. Dettagli come quali variabili sono visibili in quali parti del programma, e quali nomi vogliano dire cosa, e quando, sono di primaria importanza. I dettagli variano dal quasi barocco, in linguaggi come il Lisp, all'estremamente barocco, in linguaggi quali il C++. Il Perl sfortunatamente cade in qualche punto all'estremità rococò di questa scala. Il problema del Perl non è la mancanza di un sistema di gestione dei nomi chiaramente definito, bensì la presenza di due di questi sistemi, che lavorano simultaneamente. Ecco il Grande Segreto a proposito delle variabili in Perl, che la gente impara troppo tardi: il Perl ha due insiemi di variabili completamente separati e indipendenti. Uno è un'eredità di Perl 4, e l'altro è nuovo. I due insiemi vengono chiamati 'variabili package' e 'variabili lessicali', e non hanno niente a che fare l'uno con l'altro. Poichè sono nate prima, parleremo innanzitutto delle variabili package. Poi vedremo alcuni problemi ad esse legati, e come le variabili lessicali siano state introdotte in Perl 5 per evitarli. Infine, vedremo come fare in modo che il Perl diagnostichi automaticamente i punti in cui potreste non ottenere la variabile che volete, e come questo possa rilevare errori prima che essi diventino bug.
|
|||||||||
Perl Paraphernalia: namespaces | Disclaimer: questo è un link a contenuti ospitati su server esterni. |