BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai 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 202 ESECUZIONE DEL PROGRAMMA Lesecuzione delle istruzioni avviene in sequenza, ovviamente nellordine in cui sono scritte nel file. Nellesempio cè una sola istruzione eseguibile, listruzione 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 203 COMMENTI Abbiamo visto finora il significato dei simboli #! posti nella prima riga, che dicono allinterprete di comandi UNIX (la shell) con quale programma (/usr/bin/perl, cioè linterprete PERL) interpretare il resto del file. In ogni altra riga è possibile inserire dei commenti dopo il carattere #, cioè delle frasi che vengono ignorate dellinterprete 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 dellautore 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 linterprete incontra il carattere # egli ignora il testo scritto da quel punto fino alla fine della riga
BIOINFO3 - Lezione 204 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 Il nome di una variabile di tipo array inizia con il Esempi: %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 205 ASSEGNAMENTO Ha la classica forma variabile=espressione; (N.B. ricordarsi il ;) Esempi: $a=3; $a=$a+1; $ricavo=1000; $spese=800; $guadagno=$ricavo-$spese; $a 3 3 $a=$a+1=3+1=4 $a 4 $ricavo 1000 $spese 800 $guadagno=$ricavo-$spese= =200 $guadagno 200
BIOINFO3 - Lezione 206 ASSEGNAMENTO Se una variabile non è mai stata usata prima, essa è creata dallassegnamento. 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. $b $b Mario
BIOINFO3 - Lezione 207 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 allinterno della stringa, nonché linterpretazione 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; $b Io ho $a anni $c Io ho 10 anni $a 10
BIOINFO3 - Lezione 208 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..; $n Mario $c Rossi $a MarioRossi $b Mario Rossi $b Mario Rossi.
BIOINFO3 - Lezione 209 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 2010 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; $a 9 10 $a 8 24 $a 6 1
BIOINFO3 - Lezione 2011 OPERATORE DI INCREMENTO Lassegnamento $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 loperatore viene usato in una espressione. Nella forma postfissa viene prima restituito il valore e poi effettuato lincremento mentre in quella prefissa prima si effettua lincremento e poi si restituisce il valore. Analogamente per loperatore --. $a=5; $b=$a++; $a=5; $b=++$a; $a 5 6 $b 5 $a 5 6 $b 6
BIOINFO3 - Lezione 2012 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 2013 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? Notare gli apici
BIOINFO3 - Lezione 2014 RIEPILOGO Listruzione print I commenti Nomi e tipi delle variabili Lassegnamento Luso degli apici Concatenamento di stringhe Operatori: aritmetici, di assegnamento, di incremento