IL PRIMO PROGRAMMA IN PERL
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
BIOINFO3 - Lezione 20
1
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
2
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
3
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
4
ASSEGNAMENTO
Ha la classica forma variabile=espressione; (N.B. ricordarsi il ;)
3
Esempi:
$a=3;
$a
$a=$a+1;
$a
$a
3
4
$ricavo=1000;
$spese=800;
$guadagno=$ricavo-$spese;
BIOINFO3 - Lezione 20
$a=$a+1=3+1=4
$ricavo
1000
$spese
800
$guadagno=$ricavo-$spese=
1000-800=200
$guadagno
200
5
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
1
$b=$b+0.33;
$b
1.33
$b=“Mario”;
$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.
BIOINFO3 - Lezione 20
6
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;
$a
10
$b=‘Io ho $a anni’;
$b
Io ho $a anni
$c=“Io ho $a anni”;
$c
Io ho 10 anni
BIOINFO3 - Lezione 20
7
CONCATENAMENTO DI STRINGHE
E’ possibile concatenare due stringhe usando il simbolo “.”
$n=“Mario”;
$n
Mario
$c=‘Rossi’;
$a=$n.$c;
$b=$n.” “.$c;
$b=$b.”.”;
$c
Rossi
$a
MarioRossi
$b
Mario Rossi
$b
Mario Rossi.
Esiste una forma implicita del comando che permette di accodare
una stringa alla stringa data
$b.=“.”;

BIOINFO3 - Lezione 20
$b=$b.”.”;
8
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
9
OPERATORI DI ASSEGNAMENTO
Anche per gli operatori aritmetici, come per le stringhe (.=),
esiste un operatore implicito di assegnamento.
$a
9
$a+=1;

$a=$a+1;
$a
10
$a-=2;

$a=$a-2;
$a
8
$a*=3;

$a=$a*3;
$a
24
$a/=4;

$a=$a/4;
$a
6
$a%=5;

$a=$a%5;
$a
1
BIOINFO3 - Lezione 20
10
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
5
$a
6
$a
5
$b
6
$a
6
$a=5;
$b=$a++;
$a=5;
$b=++$a;
BIOINFO3 - Lezione 20
11
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
12
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 20
13
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
14
Scarica

- CRIBI Genomics group