Guida al Perl
Si trovano decine di guide al perl, ma molto spesso chi deve imparare un linguaggio di programmazione decide di non farlo perché vede che ci sono una marea di pagine. In questa guida cercherò di illustrare le cose fondamentali del Perl.
Cos’è il Perl?
Innanzitutto cominciamo col dire che il Perl è un linguaggio di scripting molto potente, permette di eseguire operazioni con poche istruzioni che in un altro linguaggio sarebbero state molto più complicate da scrivere.
Di cosa abbiamo bisogno per lanciare uno script?
Abbiamo bisogno di un interprete Perl come Active Perl;
Poi logicamente abbiamo bisogno dello script, in formato .pl;
Per lanciarlo basta aprire il Terminale/Prompt e con il comando cd ci spostiamo nel percorso dello script. A questo punto digitiamo perl nomescript.pl
Simboli che troveremo nel perl: IN AGGIORNAMENTO
– $ per introdurre una variabile
– \n per andare a capo
– # Se la riga di codice comincia con #, non sarà eseguita (non confondetevi con #!/usr/local/bin/perl che serve per indicare la posizione di Perl
– @ per introdurre un array
– & per introdurre una subroutine
Il primo script in Perl
Cominciamo da un algoritmo semplice:
Assegna ad a la sequenza di caratteri: “Luigi”;
Stampa “Il mio nome è: ” e il valore di a
Il codice sarà:
#!/usr/local/bin/perl
$a = "Luigi";
print "Il mio nome è $a\n";
Alla fine del codice ho messo \n, serve per andare a capo.
Prima di complicare il codice devo introdurre i canali standard di comunicazione, cioè:
<STDIN> è il canale di Input (STanDardINput)
<STDOUT> è il canale di Output (STanDardOUTput)
<STDERR> è il canale che serve per visualizzare gli errori nel Terminale.
Detto questo vediamo come interagire con questi ultimi.
Facciamo in modo che il valore della variabile $a lo dobbiamo decidere noi, useremo quindi il canale di input:
Vedremo successivamente come utilizzare gli altri due.
Adesso introduciamo due nuove variabili, le chiameremo $b e $totale, che fantasia. Facciamo in modo che $totale sommi il valore di $a, al valore di $b.
Si può modificare il codice sostituendo il + con – o / o*
Ad esempio:
#!/usr/local/bin/perl
$a = <STDIN>;
$b = <STDIN>;
$totale = $a-$b;
print "$totale\n"
E così via.
Gli array
Abbiamo visto le variabili, che si identificano dal simbolo $. Prima di parlare degli array c’è da dire che una variabile, può contenere una stringa, un valore o un numero. Un array può contenere più stringe, piu valori, più numeri. Ad esempio, facciamo che vogliamo creare una variabile per ogni nome.
Usando gli array diventa:
Se voglio richiamare Pincopallino, farò così:
Se voglio richiamare Se voglio richiamare Giacomino, farò così:
Da tener presente che gli array si contano partendo da 0.
Argomenti su riga di comando
Riprendiamo l’esempio di prima e facciamo in modo che le variabili vengano specificate direttamente nella linea di comando quando lanciamo lo script. (es. perl asd.pl 10 20):
#!/usr/local/bin/perl
$a = $ARGV[0];
$b = $ARGV[1];
$totale = $a-$b;
print "$totale\n"
If-Elsif-Else
Vediamo come creare una condizione. Mettiamo il caso e la condizione sia questa:
Se $a è uguale a ‘test’ stampa Hai inserito la parola giusta
Oppure stampa Non hai inserito la parola giusta
if ($a eq "test") {
print "Hai inserito la parola giusta\n";
} else {
print "Non hai inserito la parola giusta\n";
}
Adesso riformuliamola condizione:
Se $a è uguale a ‘test’ stampa Hai inserito la parola giusta
Se $b è uguale a ‘test2’ stampa Hai inserito la seconda parola giusta
Oppure stampa Non hai inserito la parola giusta
if ($a eq "test") {
print "Hai inserito la parola giusta\n";
} elsif {
print "Non hai inserito la parola giusta\n";
} else {
print "Non hai inserito la parola giusta\n";
}
Alcune regole:
In una condizione può esserci un solo if;
In una condizione possono esserci infiniti elsif;
In una condizione può esserci un solo else;
Ecco gli operatori:
$a == $b uguaglianza vero se $a è uguale a $b
$a < $b minore di vero se $a è minore di $b
$a <= $b minore o uguale vero se $a è minore o uguale a $b
$a > $b maggiore vero se $a è maggiore di $b
$a >= $b maggiore o uguale vero se $a è maggiore o uguale a $b
$a != $b diverso vero se $a è diverso da $
$a eq $b uguaglianza vero se $a è uguale a $b
$a lt $b minore di vero se $a è minore di $b (ordine alfabetico)
$a le $b minore o uguale vero se $a è minore o uguale a $b (ordine alfabetico)
$a gt $b maggiore vero se $a è maggiore di $b (ordine alfabetico)
$a ge $b maggiore o uguale vero se $a è maggiore o uguale a $b (ordine alfabetico)
$a ne $b diverso vero se $a è diverso da $b
-r $a leggibile vero se il file $a è leggibile
-w $a scrivibile vero se è possibile scrivere sul file $a
-d $a directory vero se $a è una directory
-f $a file regolare vero se $a è un file regolare (non un device o altro)
-T $a file di testo vero se $a è un file di testo
-e $a esiste vero se il file $a esiste
Legenda:
Operatori di confronto tra numeri
Operatori di confronto tra stringhe
Operatori su file
I cicli
I cicli consentono di ripetere determinati comportamenti, si ripetono dei comandi per un determinato numero di volte.
Ecco un esempio di codice del ciclo for
#!/usr/local/bin/perl
@nomi = (“Pincopallino”, “Giacomino”, “Gesu”);
for ($i=0; $i<=$#nomi; $i++)
{
print “$nomi[$i]\n”;
}
In questo modo, ad ogni ciclo, verra stampato un elemento.
$i=0 è il valore di inizio del ciclo.
$i<=$#nomi indica l’ultimo valore dell’array.
$i++ Serve per aumentare il valore d’inizio del ciclo.
Il ciclo foreach
Il ciclo foreach prende tutti gli elementi di un array, li sposta in una variabile stampa la variabile a schermo:
#!/usr/local/bin/perl
@nomi = (“Pincopallino”, “Giacomino”, “Gesu”);
foreach $nomignoli (@nomi)
{
print “$nomignoli\n”;
}
Il ciclo while
il ciclo while consente di ciclare un blocco di istruzioni fino a quando una condizione risulta vera, quando restituisce false il ciclo si bloccherebbe.
#!/usr/local/bin/perl
@nomi = (“Pincopallino”, “Giacomino”, “Gesu”);
while (@nomi)
{
$nomignoli = shift @nomi;
print “$nomignoli\n”;
}
Le subroutine
Le subroutine non sono altro che un insieme di istruzioni che vengono inserite in qualsiasi parte del codice. Infatti quando l’interprete perl trova un richiamo alla subroutine, va alla ricerca della subroutine per tutto il codice. In genere però le funzioni delle subroutines si specificano tutte alla fine, per una maggiore comprensione. Andiamo a vedere come è composta una subroutine:
Per richiamare una subroutine si usa: &nomesub()
——————————————————————-
Bene la guida sulle funzioni di base del perl è finita. Consiglio, per chi volesse approfondire di leggere queste due guide: Guida1 – Guida2
Commenti