140 likes | 310 Views
Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere l’ormai celebre primo programma di prova. Apriamo un editor (nano, emacs, kwrite) e scriviamo il seguente programma
E N D
Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere l’ormai celebre primo programma di prova. Apriamo un editor (nano, emacs, kwrite) e scriviamo il seguente programma Salviamo il programma, ad esempio con il nome prova.pl, ricordiamoci di renderlo eseguibile ed eseguiamolo IL PRIMO PROGRAMMA IN PERL BIOINFO3 - Lezione 20
ESECUZIONE DEL PROGRAMMA • L’esecuzione delle istruzioni avviene in sequenza, ovviamente nell’ordine in cui sono scritte nel file. Nell’esempio c’è una sola istruzione eseguibile, l’istruzione di print che stampa sullo standard output (sul video, o meglio sulla finestra di shell in cui è stato eseguito il comando) la stringa indicata tra “”. • Nel nostro caso viene stampato Ciao ed il carattere di “vai a capo” (\n). Senza questo carattere di a capo il prompt UNIX sarebbe stato scritto immediatamente di seguito al Ciao, sulla stessa riga. BIOINFO3 - Lezione 20
COMMENTI • Abbiamo visto finora il significato dei simboli #! posti nella prima riga, che dicono all’interprete di comandi UNIX (la “shell”) con quale programma (/usr/bin/perl, cioè l’interprete PERL) interpretare il resto del file. • In ogni altra riga è possibile inserire dei commenti dopo il carattere #, cioè delle frasi che vengono ignorate dell’interprete e servono a chi scrive il programma o a chi dovrà magari leggerlo o modificarlo successivamente. I commenti vengono usati per descrivere il programma, la sua versione, il suo funzionamento, il suo input ed output, identificarne alcune parti importanti, spiegare il significato di alcune variabili o perché si siano usate certe istruzioni o anche solo per contenere la firma dell’autore e la data di realizzazione e di successive modifiche • Il consiglio è quello di imparare a commentare quanto più possibile i propri programmi, anche se per ragioni di tempo si finisce sempre per non mettere alcun commento. Ogni volta che l’interprete incontra il carattere # egli ignora il testo scritto da quel punto fino alla fine della riga BIOINFO3 - Lezione 20
NOMI E TIPI DELLE VARIABILI • Esistono diversi tipi di variabili in Perl, identificate grazie al primo carattere del loro nome. I caratteri successivi potranno essere liberamente lettere o numeri o il carattere di sottolineatura _ • $ variabili “scalari” • Sono così chiamate le normali variabili, che possono contenere valori numerici o stringhe. Il loro nome inizia con $ ad esempio $a $questa_variabile $1 • @ array • Il nome di una variabile di tipo array inizia con il simbolo @ • Esempi: @a @nomi • % array associativi • Il nome di una variabile di tipo array associativo inizia con il simbolo % • Esempi: %a %prezzi • file handle • Sono delle variabili associate ai file aperti in lettura o scrittura. Normalmente si usano nomi formati da lettere maiuscole • Esempio: H FILE_INPUT STDIN STDOUT BIOINFO3 - Lezione 20
ASSEGNAMENTO • Ha la classica forma variabile=espressione; (N.B. ricordarsi il ;) • Esempi: • $a=3; • $a=$a+1; • $ricavo=1000; • $spese=800; • $guadagno=$ricavo-$spese; 3 $a 3 $a $a=$a+1=3+1=4 4 $a 1000 $ricavo 800 $spese $guadagno=$ricavo-$spese= 1000-800=200 200 $guadagno BIOINFO3 - Lezione 20
ASSEGNAMENTO • Se una variabile non è mai stata usata prima, essa è creata dall’assegnamento. E la stessa variabile potrà contenere in seguito indifferentemente numeri (interi o reali) o stringhe • $b=1; • $b=$b+0.33; • $b=“Mario”; • Il valore di una variabile non ancora usata viene assunto 0 oppure la stringa vuota a seconda del contesto in cui viene usato. Se, ad esempio, in una somma di numeri, sarà 0. 1 $b 1.33 $b Mario $b BIOINFO3 - Lezione 20
USO DEGLI APICI • Abbiamo detto che le stringhe debbono essere racchiuse tra apici. Entrambi i tipi di apici (doppi o singoli) sono ammessi dal Perl, però con effetto diverso. • Gli apici doppi (“) provocano la sostituzione, con il loro valore, di eventuali variabili contenute all’interno della stringa, nonché l’interpretazione dei caratteri di controllo (es. /n). Gli apici singoli (‘) non effettuano invece nessuna sostituzione. • $a=10; • $b=‘Io ho $a anni’; • $c=“Io ho $a anni”; 10 $a Io ho $a anni $b Io ho 10 anni $c BIOINFO3 - Lezione 20
CONCATENAMENTO DI STRINGHE • E’ possibile concatenare due stringhe usando il simbolo “.” • $n=“Mario”; • $c=‘Rossi’; • $a=$n.$c; • $b=$n.” “.$c; • $b=$b.”.”; • Esiste una forma implicita del comando che permette di accodare una stringa alla stringa data • $b.=“.”; $b=$b.”.”; Mario $n Rossi $c MarioRossi $a Mario Rossi $b Mario Rossi. $b BIOINFO3 - Lezione 20
OPERATORI ARITMETICI • Gli operatori che si possono usare nelle espressioni sono i classici operatori aritmetici, logici o anche delle funzioni speciali • + addizione • - sottrazione • * prodotto • / divisione • % resto della divisione (5%2=1, 4%2=0) • ** elevamento a potenza (2**5=32, 5**2=25) • ++ incremento di 1 • -- decremento di 1 BIOINFO3 - Lezione 20
OPERATORI DI ASSEGNAMENTO • Anche per gli operatori aritmetici, come per le stringhe (.=), esiste un operatore implicito di assegnamento. • $a+=1; $a=$a+1; • $a-=2; $a=$a-2; • $a*=3; $a=$a*3; • $a/=4; $a=$a/4; • $a%=5; $a=$a%5; 9 $a 10 $a 8 $a 24 $a 6 $a 1 $a BIOINFO3 - Lezione 20
OPERATORE DI INCREMENTO • L’assegnamento $a=$a+1 può essere ottenuto anche attraverso i due operatori $a++ (forma postfissa) e ++$a (forma prefissa). Nei due casi cambia però il risultato restituito se l’operatore viene usato in una espressione. • Nella forma postfissa viene prima restituito il valore e poi effettuato l’incremento mentre in quella prefissa prima si effettua l’incremento e poi si restituisce il valore. Analogamente per l’operatore --. • $a=5; • $b=$a++; • $a=5; • $b=++$a; 5 $a 5 $b 6 $a 5 $a 6 $b 6 $a BIOINFO3 - Lezione 20
ESERCIZIO • Scrivere un programma Perl per: • Assegnare alla variabile $a il valore 10, • assegnare alla variabile $b il valore 5, • assegnare alla variabile $c il prodotto di $a con la somma di 5 a $b, • assegnare alla variabile $d il resto della divisione di $c per 2, • Stampare “Risultato=“ seguito dal valore di $d e dal carattere di “a capo” \n. • Quanto vale $d alla fine del programma? BIOINFO3 - Lezione 20
Notare gli apici ESERCIZIO • Scrivere un programma Perl per: • Assegnare alla variabile $s1 la stringa “Ciao”, • assegnare alla variabile $s2 la stringa ‘carissimi’, • aggiungere alla fine della stringa $s1 una virgola ed il carattere di “a capo” • Assegnare alla stringa $s3 la concatenazione delle variabili $s1 e $s2 • Stampare $s3 seguita dal carattere di “a capo” e da “->”. • Cosa vedremo a video alla fine del programma? BIOINFO3 - Lezione 20
RIEPILOGO • L’istruzione print • I commenti • Nomi e tipi delle variabili • L’assegnamento • L’uso degli apici • Concatenamento di stringhe • Operatori: aritmetici, di assegnamento, di incremento BIOINFO3 - Lezione 20