POD2-IT

 view release on metacpan or  search on metacpan

IT/perlvar.pod  view on Meta::CPAN

PuE<ograve> essere letto ed impostato. Come il suo equivalente a linea di
comando, potete utilizzare valori numerici o simbolici, ad esempio
C<$^D = 10> oppure C<$^D = "st">.

=item $SYSTEM_FD_MAX

=item $^F

Il massimo descrittore di file di sistema, usualmente pari a 2.
I descrittori di file di sistema sono passati ai processi eseguiti
con C<exec()>, mentre i descrittori di file piE<ugrave> alti non lo sono.
In piE<ugrave>, durante una C<open()>, i descrittori di file di sistema
sono preservati anche se C<open()> fallisce. (I descrittori di file
ordinari sono chiusi prima di un tentativo di C<open()>). Lo status
di close-on-exec [chiudi quando esegui, N.d.T.] verrE<agrave> deciso in
base al valore di C<$^F> quando il file, la pipe o il socket
corrispondenti sono stati aperti, non quello trovato al momento
della C<exec()>.

=item $^H

ATTENZIONE: questa variabile E<egrave> strettamente ad uso interno. La sua
disponibilitE<agrave>, comportamento e contenuto sono soggetti a variazioni
senza preavviso.

Questa variabile contiene suggerimenti per l'interprete Perl utilizzati
in fase di compilazione. Alla fine della compilazione di un BLOCCO il
valore di questa variabile viene ripristinato a quello di quando
l'interprete ha iniziato a compilare il BLOCCO stesso.

Quando perl inizia ad interpretare ["parse" nell'originale inglese,
N.d.T.] un qualsiasi costrutto di blocco
che dE<agrave> luogo ad uno scope lessicale (ad esempio il corpo di una C<eval()>,
un file incluso con C<require()>, il corpo di una C<sub>, il corpo di
un ciclo, o un blocco condizionale), il valore corrente di C<$^H> viene
salvato, ma il suo valore E<egrave> lasciato immodificato. Quando la compilazione
del blocco ha avuto termine, viene ripristinato il valore salvato. Fra
questi due punti, il codice che viene eseguito all'interno dei blocchi
BEGIN E<egrave> libero di cambiare il valore di C<$^H>.

Questo comportamento E<egrave> alla base dello scoping lessicale, ed E<egrave> utilizzato,
ad esempio, nella direttiva C<use strict>.

Il contenuto dovrebbe consistere di un intero: i diversi bit sono
utilizzati per differenti flag di direttiva. Ecco un esempio:

    sub aggiungi_100 { $^H |= 0x100 }

    sub pippo {
        BEGIN { aggiungi_100() }
        pluto->topolino($paperino);
    }

Considerate quel che accade durante l'esecuzione del blocco BEGIN.
A questo punto il blocco BEGIN E<egrave> giE<agrave> stato compilato, ma il corpo di
C<pippo()> E<egrave> ancora in fase di compilazione. Il nuovo valore di C<$^H>
sarE<agrave> pertanto visibile solo durante la compilazione di C<pippo()>.

La sostituzione del blocco BEGIN con questo:

    BEGIN { require strict; strict->import('vars') }

dimostra come C<use strict 'vars'> E<egrave> implementato. Ecco una
versione condizionale della stessa direttiva lessicale:

    BEGIN { require strict; strict->import('vars') if $condizione }

=item %^H

ATTENZIONE: questa variabile E<egrave> strettamente ad uso interno. La sua
disponibilitE<agrave>, comportamento e contenuto sono soggetti a variazioni
senza preavviso.

La hash C<%^H> fornisce lo stesso raggio semantico di C<$^H>. CiE<ograve>
la rende utile per implementare direttive lessicalmente ristrette.

=item $INPLACE_EDIT

=item $^I

Il valore corrente dell'estensione di modifica diretta di un file.
Utilizzate C<undef> per disabilitare questa caratteristica.
(Memo: il valore dell'opzione C<-i>).

["inplace-edit" E<egrave> la caratteristica di Perl di poter agire direttamente
su un file che normalmente utilizzerebbe in sola lettura, ad esempio
per operare modifiche sul file stesso, N.d.T.].

=item $^M

Per default, l'errore di "memoria terminata" non puE<ograve> essere
impedito e risulta fatale. In ogni caso, se compilato in maniera
adeguata, Perl puE<ograve> utilizzare il contenuto di C<$^M>
come riserva di memoria di emergenza dopo C<die()>. Supponete che
il vostro Perl sia stato compilato con C<-DPERL_EMERGENCY_SBRK>
e che utilizzi la C<malloc()> di Perl. Allora

    $^M = 'a' x (1 << 16);

allocherebbe un buffer di 64K da utilizzare nelle emergenze. Consultate
il file F<INSTALL> nella distribuzione di Perl per informazioni su come
aggiungere flag di compilazione personalizzati quando compilate perl.
Per scoraggiare l'utilizzo casuale di questa caratteristica avanzata,
per questa variabile non esiste un nome lungo corrispondente nel
modulo L<English|English>.

=item $OSNAME

=item $^O

Il nome del sistema operativo nel quale E<egrave> stata compilata questa copia
dell'interprete Perl, cosE<igrave> come determinato durante il processo
di configurazione. Il valore E<egrave> identico a C<$Config{'osname'}>.
Consultate anche L<Config> e l'opzione a linea di comando
B<-V> documentata in L<perlrun>.

Nelle piattaforme Windows, C<$^O> non E<egrave> molto d'aiuto: essa vale
infatti sempre C<MSWin32>, e non vi dice la differenza fra
95/98/ME/NT/2000/XP/CE/.NET. Utilizzate C<Win32::GetOSName()>
o C<Win32::GetOSVersion()> (consultate L<Win32> e L<perlport>)
per distinguere fra le differenti varianti.

=item ${^OPEN}

Variabile interna utilizzata da PerlIO. Consiste di una stringa formata
da due parti, separate da un byte C<\0>. La prima parte descrive i



( run in 2.645 seconds using v1.01-cache-2.11-cpan-5735350b133 )