Successivo: Regole per i nomi, Precedente: Spazio-dei-nomi di default, Su: Spazi-dei-nomi [Contenuti][Indice]
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: Regole per i nomi, Precedente: Spazio-dei-nomi di default, Su: Spazi-dei-nomi [Contenuti][Indice]