Priv8 Team Author: DevilAuron Email: songforthemoment@hotmail.it www.devilsnight.altervista.org 1. Cos'è Il Perl? 2. Necessario 3. Come Far Partire Uno Script In Perl 4. Guida con Esempi 5. Un po' di calcoli 6. Di Nuovo le variabili 7. For, While, Until 8. Array e Hash 9. Le SubRoutine 1. Cos'è Il Perl? Il Perl è un linguaggio di scripting creato nel 1987; ha un singolare insieme di funzionalità ereditate dal C e da molti altri linguaggi di programmazione. 2. Necessario Serve solo un interprete, consiglio ActivePerl scaricabile da http://downloads.activestate.com/activeperl/windows/5.8/activeperl-5.8.8.820- MSWin32-x86-274739.msi per il resto basta il blocco note ^^ 3. Come Far Partire Uno Script In Perl Far partire uno script è facilissimo, basta seguire questi 5 punti: 1- Apri blocco note (notepad) e incolla il sorgente (ne trovi qualcuno più in fondo) 2- Salva con nome e metti come estensione.pl 3- Apri il prompt (start->esegui->cmd) 4- Recati nella cartella dove è salvato il prog utilizzando il comando "cd" (per esempio se sta sul desktop scriveremo "cd desktop") 5- digita "perl nomecheglihaidato.pl" 4. Guida con Esempi Adesso metterò alcuni sorgenti, con sotto scritta la spiegazione di quello che fanno riga per riga (così si imparerà più facilmente) #codice di prova print "Ciao, come ti chiami?\n"; $nome = <STDIN>; print "Ciao $nome \n"; analizziamo: tutte le scritte con all'inizio il "#" (cancelletto) sono commenti e non influiscono sullo script. (es )
Il comando print stamperà tutto quello che è contenuto nelle due virgolette (in questo caso scriverà: Ciao, come ti chiami?) il comando \n server per mandare a capo $nome è la variabile, essendo STDIN dice allo script di immagazzinare nella variabile $nome quello che l'utente batte da tastiera finchè conclude con il tasto invio nell'ultimo comando (print) scriverà "Ciao" più il vostro nome (quello che avete inserito) NB: in ogni comando alla fine va inserito il ";" (punto e virgola) Vediamo un altro esempio print "Di che colore hai i capelli?\n"; print "1- Neri\n"; print "2- Marroni\n"; print "3- Biondi\n"; print "Digita il numero accanto al colore dei tuoi capelli "; $colore = <STDIN>; if ($colore == 1) print "Hai i capelli neri!"; elsif ($colore == 2) print "Hai i capelli Marroni!"; elsif ($colore == 3) print "Hai i capelli Biondi!"; allora.. come abbiamo spiegato prima print è quello che apparirà e $colore è la variabile. if ($colore == 1) print "Hai i capelli neri!"; elsif ($colore == 2) print "Hai i capelli Marroni!"; elsif ($colore == 3) print "Hai i capelli Biondi!"; se $colore ha valore 1 apparirà scritto "hai i capelli neri!" invece se $colore ha valore 2 apparirà scritto "hai i capelli marroni!" invece se $colore ha valore 3 apparirà scritto "hai i capelli biondi!" (in pratica digitando il numero scelto apparirà tutto quello che sta nelle parentesi graffe corrispondenti)
E se noi non digitassimo né 1 né 2 né 3? In questi casi si usa il comando else print "Di che colore hai i capelli?\n"; print "1- Neri\n"; print "2- Marroni\n"; print "3- Biondi\n"; print "Digita il numero accanto al colore dei tuoi capelli "; $colore = <STDIN>; if ($colore == 1) print "Hai i capelli neri!"; elsif ($colore == 2) print "Hai i capelli Marroni!"; elsif ($colore == 3) print "Hai i capelli Biondi!"; else print "Numero Errato"; Vediamo come aprire applicazioni.. system (cls); print "Vuoi Aprire FireFox?\n"; print "1- Si\n"; print "2- No\n"; $decision = <STDIN>; if ($decision == 1) system ("C:/Programmi/Mozilla Firefox/firefox.exe") system (cls); cancellerà tutte le scritte precedenti prima di quel comando system ("C:/Programmi/Mozilla Firefox/firefox.exe") aprirà firefox (naturalmente bisogna mettere il percorso) e se volessimo aprire FireFox più un indirizzo? basta inserire dopo il percorso della cartella di firefox il link per esempio: system ("C:/Programmi/Mozilla Firefox/firefox.exe", "http://www.devilsnight.altervista.org "); in questo modo dopo aver aperto firefox si recherà al sito (in questo caso www.devilsnight.altervista.org) 5. Un po' di calcoli Come al solito, studieremo il perl analizzando i sorgenti, vediamo questo codice #/usr/bin/perl $a = 1 ;
$b = 2 ; $c = $a + $b ; print "$c"; come al solito tutto quello dopo il "#" (cancelletto) è un commento e non influenza lo script $a = 1 indica che la variabile a è uguale a 1 (e fino a qui ci siamo..) $b = 2 indica che la nostra seconda variabile ($b) vale 2 (e anche questo si era capito) la variabile $c invece è la somma tra le due variabili e con il comando print stamperà la somma tra $a e $b (infatti se lo testate apparirà scritto solo "3") oltre al tasto più si può usare il "-" (meno) "*" (per) "/" (diviso) e così via ora analizziamo questo che è molto simile al primo #/usr/bin/perl print "Scrivi il primo numero "; $a = <STDIN>; chomp($a); print "Scrivi il secondo numero "; $b = <STDIN>; chomp($b); $c = $a + $b ; print "Il risultato e' $c"; if ($c > 5) print " che e' un numero maggiore di 5"; che è successo? semplicemente, dopo aver inserito i due numeri ti dice se la variabile $c (che corrisponde alla variabile $a più la variabile $b) è un numero superiore di 5 Ecco tutti i simboli di confronto che si possono utilizzare in perl: Simbolo Significato < Minore > Maggiore = Uguale => Maggiore o Uguale <= Minore o Uguale!= Non Uguale 6. Di nuovo le variabili rieccoci di nuovo sulle variabili, nella prima parte della guida avevo spiegato come usare le variabili tipo queste: print "Di che colore hai i capelli?\n"; print "1- Neri\n"; print "2- Marroni\n"; print "3- Biondi\n"; print "Digita il numero accanto al colore dei tuoi capelli "; $colore = <STDIN>; if ($colore == 1) print "Hai i capelli neri!"; elsif ($colore == 2)
print "Hai i capelli Marroni!"; elsif ($colore == 3) print "Hai i capelli Biondi!"; ma se invece di scrivere un numero volessimo scrivere lettere? niente di più facile, invece di usare l'uguale (=) usiamo "eq" vediamo qui: print "Ti chiamo Carlo?\n"; print "Digita si o no\n"; $nome = <STDIN>; chomp($nome); if($nome eq "no") print "Non ti chiami carlo\n"; if($nome eq "si") print "Ti chiami carlo\n"; più semplice di così... 7. For, While, Until Vediamo subito un esempio del comando FOR: for ($i = 1; $i <= 5; $i++) print "$i"; (Il comando $i++ incrementa di un unità il valore della variabile) Se lo testate, vedrete che stamperà solo 12345 Questo perché, finchè la variabile non sarà uguale a 5, incrementerà di un unità. Analizziamo: $variabile = 1; while ($variabile < 10) print "$variabile"; in questo codice, se lo testiamo non apparirà nient'altro che tantissimi numeri "1" questo perchè finchè la variabile è inferiore a 10 (while ($variabile < 10) ) stampiamo la variabile ( print "$variabile"; ) naturalmente fino a quando non chiuderemo il prompt lo script continuerà a stampare il numero 1 perchè il numero 10 non sarà mai inferiore a 1 (mi sembra ovvio..) Until: Il Comando Until è l esatto opposto del comando while, infatti, il comando while esegue l operazione tra le parentesi fino a quando essa non risulta falsa, until
invece la esegue fino a quando non diventa vera, quindi il comando qua sopra si potrebbe scrivere così: $variabile = 1; until ($variabile > 10) print "$variabile"; (Finchè la variabile è 1 NON è superiore 1 a 10, stampa la variabile) 8. Array e Hash Array: Un Array è un insieme di variabili "introdotto" dal segno @ (chiocciola o come la volete chiamare) per esempio : @giorni = ("lunedi","martedi","mercoledi","giovedi","venerdi","sabato","domenica"); in questo caso l'array (giorni) avrà 7 variabili (lunedì martedì ecc) per esempio @giorni = ("lunedi","martedi","mercoledi","giovedi","venerdi","sabato","domenica"); print "$giorni[0]"; stamperà "lunedi" in questo caso la prima variabile (lunedì) ha il numero 0 e l'ultima 6 (domenica) Hash: Un Hash (chiamato anche Array Associativo) è introdotto dal simbolo % (percentuale) che usa al posto degli indici delle stringhe chiamate chiavi Esempio: %videogioco = ( 'tipo' => 'Sport', 'nome' => 'Fifa 2007', 'anno' => 2007 ); E per stampare si usano le parentesi graffe: print $videogioco'tipo'; (Se provate infatti stamperà Sport ) 9. Le Subroutine Le Subroutine sono delle strutture che permettono di prendere una parte di codice e "includerla" nel sorgente senza riscriverla. le Subroutine vengono introdotte da "sub" + il nome di essa e vengono richiamate con il simbolo "&" Per esempio, creiamo una calcolatrice
print q Calcolatrice 1 - Addizione 2 - Sottrazione 3 - Moltiplic. 4 - Divisione ; $dec = <STDIN>; if($dec == 1) print "Inserisci primo numero\n"; $var = <STDIN>; print "Inserisci secondo numero\n"; $var2 = <STDIN>; #ECC elsif($dec == 2) print "Inserisci primo numero\n"; $var = <STDIN>; print "Inserisci secondo numero\n"; $var2 = <STDIN>; #ECC #ecc ecc invece di inserire tutte le volte print "Inserisci primo numero\n"; $var = <STDIN>; print "Inserisci secondo numero\n"; $var2 = <STDIN>; potremo fare così: (vedi prossima pagina) print q Calcolatrice 1 - Addizione 2 - Sottrazione 3 - Moltiplic. 4 - Divisione ; $dec = <STDIN>; sub nomechecipare
print "Inserisci primo numero\n"; $var = <STDIN>; print "Inserisci secondo numero\n"; $var2 = <STDIN>; ; if($dec == 1) &nomechecipare; #ecc #Eccecc come vediamo la creiamo usando sub nomechecipare #code e la 'includiamo' con &nomechetipare; ps: print q #testo serve per scrivere senza usare ogni volta print " "; (mi ero scordato di scriverlo ^^) //End Guida Al Perl Powered By DevilAuron - DNC For Info: www.devilsnight.altervista.org