BIOINFO3 - Lezione 24 ARRAY Esercizio. Leggere dei numeri da un file (redirezionato) fino alla fine del file. Assegnare i numeri ad un array @numeri. Scandire l’array per trovare minimo e massimo dell’array e stamparli BIOINFO3 - Lezione 24
LISTE Gli array possono essere pensati anche come liste, senza quindi preoccuparsi degli indici degli elementi. Ciò può essere utile se si deve considerare la lista nel suo complesso, inserire progressivamente gli elementi in coda alla lista ed eventualmente estrarli dalla testa o dalla coda. Perl mette a disposizione le seguenti funzioni: push (lista,elemento) aggiunge un elemento in coda alla lista shift (lista) rimuove (restituendone il valore) il primo elemento della lista pop (lista) rimuove (restituendone il valore) l’ultimo elemento della lista push shift pop BIOINFO3 - Lezione 24
LISTE Esempio BIOINFO3 - Lezione 24
CICLI SU LISTE Esiste una istruzione simile al for per effettuare dei cicli su tutti gli elementi di una lista foreach variabile (lista){ blocco istruzioni } Permette di eseguire tante volte il blocco di istruzioni quanti sono gli elementi della lista, una volta per ciascun elemento. In ogni iterazione la variabile assume il valore di uno degli elementi della lista. E’ possibile effettuare eventualmente le iterazioni su una versione ordinata della lista usando la funzione sort Esempio: Stampare gli elementi di una lista ordinati (non modificare la lista) BIOINFO3 - Lezione 24
LISTE Esercizio. Leggere (attraverso redirezione) un file di nomi (uno per riga), inserendoli uno ad uno in una lista. Ordinare la lista e stampare uno ad uno i nomi della lista ordinata. Si può così redirezionare anche l’output per ottenere in un file una versione ordinata del file di input BIOINFO3 - Lezione 24
ESERCIZIO PER CASA Esercizio 14. Leggere un file di nomi (uno per riga, a partire da inizio riga) e stampare il numero dei nomi, il primo e l’ultimo nome in ordine alfabetico BIOINFO3 - Lezione 24
@ARGV L’array @ARGV è una variabile speciale del Perl in cui è possibile trovare gli argomenti passati al programma nella linea di comando con cui ne è stata lanciata l’esecuzione L’istruzione die fa morire il programma mostrando il messaggio di errore indicato BIOINFO3 - Lezione 24
BIOINFO3 - Lezione 24 ESERCIZIO Esercizio. Usando foreach e push assegnare ciascuno degli argomenti del programma ad una lista @l. Ordinare la lista @l e stampare i suoi elementi uno per riga, preceduti da un numero progressivo (a partire da 1) e da un tab BIOINFO3 - Lezione 24
RIEPILOGO Array e liste Cicli su liste: foreach @ARGV BIOINFO3 - Lezione 24 RIEPILOGO Array e liste Cicli su liste: foreach @ARGV BIOINFO3 - Lezione 24