Fondamentalmente gli array sono anch'essi delle
variabili, ma di un
tipo particolare, infatti, con questo termine usiamo identificare una
variabile che
racchiude in sè (a cui sono stati assegnati) più
valori.
Per dichiarare un array si
utilizza una sintassi molto simile a
quella che viene impiegata per le variabili, in questo caso, però,
dovremo
sostituire il dollaro con una chiocciola ("@") ed
elencare i valori da assegnare
all'array ponendoli tra parentesi
tonde e suddividendoli tramite una virgola.
Quindi, nel caso in
cui volessimo dichiarare una variabile array
chiamata, per esempio, "@array", dovremo utilizzare una
sintassi
simile alla seguente:
@array = ("valore_1", "valore_2", "valore_n");Un array chiamato "@famiglia" potrebbe per esempio essere strutturato in questo modo:
@array = ("padre", "madre", "figlio", "figlia");Dato che un array non rappresenta un unico valore, ma è comunque rappresentato da un unico nome, si pone il problema di estrarre i singoli valori da esso. Per far questo Perl assegna ai valori che compongono un array un indice numerico che và da "0" a "n", dove "0" rappresenta il numero indice del primo valore ed "n" quello dell'ennesimo valore contenuto.
$famiglia[1]Che è pari a "madre", da notare che in questo caso utilizzeremo "$" e non "@" in quanto "$famiglia[1]" rappresenta un unico valore ed è quindi una normale variabile non composita.
push(@famiglia, "nonno");In questo caso "nonno" assumerà un numero indice pari a "4" (quinto per un indice che và da "0" a "4"). Se desiderassimo aggiungere più di un ulteriore valore all'array dovremmo "annidare" le parentesi tonde:
push(@famiglia, ("nonno", "nonna"));Sarà inoltre possibile che un array presenti un array (o più di uno) tra i suoi valori:
@array = ("padre", "madre", "figlio", "@nonni");Un array può essere assegnato ad una comune variabile, ma in questo caso dovremo porre particolare attenzione all'uso degli apici, infatti:
$var = @famiglia;consite nell'assegnazione alla variabile "$var" della lunghezza dell'array denominato "@famiglia", mentre:
$var = '@famiglia';opera una sotituzione tramite una stringa del nome di un array, la stringa rappresenterà i valori separati da spazi.
%dati = ( "giuseppe garibaldi", 50, "john lennon", 99, "linus torvald", 44 );Per cui, per esempio:
$dati{"linus torvald"};restituirà "44".