Perl/Variabili vettori: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
BimBot (discussione | contributi)
m Template + Categoria
Nessun oggetto della modifica
Riga 8:
array - scalari : 0 1 2 3 4 ... 99
 
'''===I NOMI'''===
 
Come per le scalari i nomi degli array possono essere composti da lettere, numeri, "_" , "'" e d avere lunghezza fino a 256 caratteri. Inoltre essendo un linguaggio "case sensitive" le lettere maiuscole e le lettere minuscole sono differenti.
 
'''===IL CONTENUTO'''===
 
Il contenuto è un qualsiasi scalare.
Riga 65:
'''NOTA''' se l'array ha un numero inferiore di elementi rispetto a quelli presenti , gli elementi che sono stati "aggiunti" hanno valore undef.
 
=== Linerizzazione ===
Con questa parola intendo la "trasformazione" che il linguaggio opera automaticamente nel trattare nel contesto gli array.
Vediamo questo esempio:
@a = ( 2 , 3 , 4 );
@b = ( 1 , @a , 5 , 6 );
Nell'esempio trattato @b ha i valori ( 1 , 2 , 3 , 4 , 5 , 6 ) quindi al posto si @a ne sono stati messi i valori.
Quindi a @a non è stato messo il ''numero'' di elementi di @a '''ma''' gli elementi stessi che costituiscono il vettore.
Questo che può apparire strano in realtà è molto utile per "sommare" elementi e giuntarli.
Se si volesse mettere un array è necessario mettere un reference (e quindi uno scalare cioè lo scalare che punta alle informazioni di "tipo" array).
Se si volesse mettere il numero di elementi di un array è obbligatorio usare $#a.
 
===Notazione [ x , y , z ] e [ x .. y ]===
In Perl esiste la possibilità di estrarre o trattare contemporaneamente più informazioni da un array.
Questo è possibile perchè è possibile identificare sintatticamente più informazioni.
#nel caso della notazione [ x , y , z ] si indicano gli elementi alla posizione x,y,z (nell'esempio 3 ma possono essere di più o di meno!).
#nel caso della notazione [ x .. y ] si indicano tutti gli elementi che vanno all'elemento x a y.Se l'elemento x e Y sono numeri sono tutti i numeri (incrementati di 1) che intercorrono fra x e y.Nel caso di stringhe sono tutti i caratteri far una stringa e l'altra: 'a' .. 'f' equivale a a, b, c, d, e, f.
 
@alfabeto = ('A' .. 'Z');
@giorni_del_mese = ('01' .. '31');
@ACD = @alfabeto[0 , 2 ,3 ];
@s = ();
@s[2,3,5] = ( 'PIPPO' , 'pluto' , 'CIAO' );
@k[0 .. 1] = ( 'mario' , 'giuseppe' );
 
in @alfabeto ci saranno tutte le lettere dalla A alla Z
in giorni del mese ci saranno tutti i numeri da 01 a 31 (compreso 05, 11 , 21 etc)
in @ACD contiene ( 'A' , 'C' , 'D' );
in @s contiene ( undef , undef , 'PIPPO' , 'pluto' , undef , 'CIAO' )
in @k contiene ( 'mario' , 'giuseppe' )
 
 
ecco che inizia a delinearsi la possibilità di utilizzare in modo flessibile le informazioni senza dover utilizzare dei "cicli" per inserire dei valori.
[[Categoria:Linguaggio Perl|Le variabili:vettori]]