Successivo: , Precedente: , Su: Spazi-dei-nomi   [Contenuti][Indice]


15.4 Come cambiare lo spazio-dei-nomi

Per impostare lo spazio-dei-nomi corrente, si usi una direttiva @namespace al livello principale del programma interessato:

@namespace "passwd"

BEGIN { … }
…

Dopo questa direttiva, tutti gli identificati semplici che non siano composti esclusivamente da lettere maiuscole sono assegnati allo spazio-dei-nomi passwd.

È possibile cambiare lo spazio-dei-nomi più volte all’interno di un singolo file sorgente, sebbene ciò possa essere causa di confusione, se lo si fa troppe volte.

NOTA: L’assegnamento degli identificativi non qualificati a uno spazio-dei-nomi avviene nel momento in cui gawk analizza il programma, prima di cominciare a eseguirlo. Non c’è quindi il concetto di uno spazio-dei-nomi “corrente” al momento dell’esecuzione del programma. Ciò va compreso e messo in conto in anticipo.

Ogni file sorgente designato dalle opzioni -i e -f inizia con una direttiva implicita ‘@namespace "awk"’. Analogamente, ogni parte di codice immesso nella riga di comando, usando l’opzione -e ha la stessa implicita direttiva iniziale (vedi la sezione Opzioni sulla riga di comando).

I file inclusi con la direttiva @include (vedi la sezione Come includere altri file nel proprio programma) “cambiano” (push) e “ripristinano” (pop) lo spazio-dei-nomi corrente. Ossia, ogni @include salva lo spazio-dei-nomi corrente e inizia con una direttiva implicita ‘@namespace "awk"’ che resta attiva finché non si incontra una direttiva esplicita @namespace. Quando gawk termina di elaborare il file incluso, lo spazio-dei-nomi salvato è ripristinato e l’elaborazione prosegue da dove era stata sospesa nel file originale.

L’uso di @namespace non ha influenza sull’ordine di esecuzione delle regole BEGIN, BEGINFILE, END, e ENDFILE.


Successivo: , Precedente: , Su: Spazi-dei-nomi   [Contenuti][Indice]