![]() |
| index | project | pods | responsabili |
NOMEperlintro -- una breve introduzione e panoramica del linguaggio Perl
DESCRIZIONEQuesto documento è stato pensato per dare una veloce panoramica del linguaggio di programmazione Perl e per fornire riferimenti ad ulteriore documentazione. È pensato come una guida di autoapprendimento per i neofiti del linguaggio, e fornisce abbastanza informazioni per mettervi in grado di leggere codice Perl di altre persone e di capire a grandi linee quello che sta facendo, o di scrivere semplici script. Questo documento è introduttivo e non mira ad essere completo. Nemmeno ad essere del tutto accurato. In alcuni casi la perfezione è stata sacrificata per riuscire a rendere l'idea. È caldamente consigliato far seguire a questa introduzione la lettura di altre informazioni dal manuale Perl completo, il cui indice può essere trovato in perltoc. All'interno di questo documento troverete riferimenti ad altre
parti della documentazione del Perl. Potete leggere tale documentazione
usando il comando
Cosa è il Perl?Perl è un linguaggio di programmazione general-purpose originariamente sviluppato per la manipolazione di testo e usato attualmente per un'ampia gamma di compiti quali l'amministrazione di sistema, lo sviluppo web, la programmazione di rete, lo sviluppo di GUI e altro ancora. Il linguaggio è fatto per essere pratico (facile da usare, efficiente, completo) piuttosto che bello (piccolo, elegante, minimale). Le sue principali caratteristiche sono la facilità d'uso, il supporto per la programmazione procedurale o orientata agli oggetti, la presenza di potenti primitive per la manipolazione del testo e il fatto di avere una delle più impressionanti raccolte di moduli prodotti da terze parti. Ulteriori definizioni di Perl vengono date in perl, perlfaq1 e senza dubbio anche in altri posti. Se ne può dedurre che il Perl è percepito in maniera differente da persone differenti, ma che un sacco di persone pensa che valga almeno la pena di occuparsene.
Lanciare programmi PerlPer lanciare un programma Perl dalla linea di comando Unix:
perl nomeprogramma.pl
Alternativamente, usate questa come prima linea del vostro script:
#!/usr/bin/env perl
... e lanciate lo script come Per ulteriori informazioni, incluse le istruzioni per altre piattaforme quali Windows e Mac OS, leggete perlrun.
Panoramica della sintassi di baseUno script o un programma Perl consiste di una o più istruzioni.
Queste istruzioni vengono scritte semplicemente nello script una
dietro l'altra. Non c'è bisogno di avere una funzione Le istruzioni Perl finiscono con un punto e virgola:
print "Ciao, mondo!";
I commenti cominciano con un cancelletto e continuano fino alla fine della stringa.
# Questo e` un commento
Gli spazi sono irrilevanti
print
"Ciao, mondo"
;
...fatta eccezione per quando compaiono all'interno di stringhe.
# Questo stamperebbe un'interruzione di linea a meta'
print "Ciao
mondo";
Gli apici doppi o singoli possono essere usati attorno a stringhe di caratteri:
print "Ciao, mondo";
print 'Ciao, mondo';
PerE<ograve> solo i doppi apici interpretano le variabili e i caratteri come i new-line (C<\n>) presenti nella stringa:
print "Ciao, $nome\n"; # Funziona correttamente
print 'Ciao, $nome\n'; # Stampa $nome\n, cosi' come e` scritto
I numeri non hanno bisogno di essere racchiusi tra virgolette singole o doppie:
print 42;
Per gli argomenti delle funzioni, potete usare le parentesi oppure ometterle, a seconda del vostro gusto personale. Sono richieste soltanto a volte, per chiarire questioni di precedenza.
print("Ciao, mondo");
print "Ciao, mondo";
Informazioni più dettagliate a proposito della sintassi del Perl possono essere trovate in perlsyn.
Tipi di variabile in PerlIl Perl ha tre tipi di variabile principali: scalari, array e hash.
Scalari, array e hash sono documentati in maniera più completa in perldata. Si possono costruire tipi di dato più complessi usando le reference, che permettono di costruire liste e hash all'interno di liste e hash. Una reference è un valore scalare e può riferirsi a qualunque altro tipo di dato. Così, memorizzando una reference come valore di un array o come elemento di una hash, potete facilmente creare liste e hash all'interno di altre liste ed hash. Il seguente esempio mostra una hash di hash, ottenuta mediante reference anonime ad hash.
my $variabili = {
scalare => {
descrizione => "singolo elemento",
sigil => '$',
},
array => {
descrizione => "lista ordinata di elementi",
sigil => '@',
},
hash => {
descrizione => "coppie chiave/valore",
sigil => '%',
},
};
print "Gli scalari cominciano con un $variabili->{'scalare'}->{'sigil'}\n";
Informazioni esaustive sulle reference possono essere trovate in perlreftut, perllol, perlref e perldsc.
Scope delle variabiliNella sezione precedente tutti gli esempi usavano la sintassi:
my $variabile = "valore";
In effetti,
$var = "value";
Tuttavia, quest'ultima istruzione creerebbe variabili globali:
è una cattiva pratica di programmazione.
my $a = "pippo";
if ($una_certa_condizione) {
my $b = "pluto";
print $a; # stampa "pippo"
print $b; # stampa "pluto"
}
print $a; # stampa "pippo"
print $b; # non stampa nulla; $b e` finito fuori dallo scope
Usare
Costrutti condizionali e di loopIl Perl ha molti degli usuali costrutti condizionali e di loop, fatta eccezione per il costrutto case/switch (ma se davvero lo volete, c'è il modulo Switch all'interno di Perl 5.8 e successivi, e su CPAN. Consultate la sezione sui moduli, sotto, per ulteriori informazioni a proposito dei moduli e di CPAN). Le condizioni possono essere rappresentate da qualunque espressione Perl. Confrontate la lista di operatori nella prossima sezione per informazioni sugli operatori logici e di confronto, che sono comunemente usati nelle istruzioni condizionali.
Per ulteriori dettagli sui costrutti di loop (anche su alcuni che non sono stati nominati in questa panoramica), consultate perlsyn.
Operatori e funzioniPerl fornisce un'ampia selezione di funzioni builtin. Alcune di
quelle che abbiamo già visto sono Gli operatori sono documentati nei particolari in perlop, ma ecco alcuni dei più comuni:
File e I/OPotete aprire un file per l'input e l'output usando
la funzione
open(INFILE, "input.txt") or die "Non posso aprire input.txt: $!";
open(OUTFILE, ">output.txt") or die "Non posso aprire output.txt: $!";
open(LOGFILE, ">>my.log") or die "Non posso aprire logfile: $!";
Potete leggere da un filehandle aperto usando l'operatore
my $linea = <INFILE>;
my @linee = <INFILE>;
La lettura dell'intero file in un colpo solo è chiamata slurping. Può essere utile, ma può anche essere uno spreco di memoria. La maggior parte delle elaborazioni su file di testo può essere fatta una linea alla volta, usando i costrutti di loop del Perl. L'operatore
while (<INFILE>) { # Ad ogni iterazione assegna una linea del file a $_
print "Ho appena letto questa linea: $_";
}
Abbiamo già visto come stampare sullo standard output
usando
print STDERR "Questo e` il tuo ultimo avvertimento.\n";
print OUTFILE $record;
print LOGFILE $messaggio;
Quando avete finito con i vostri filehandle, dovreste
chiuderli con
close INFILE;
Espressioni regolariIl supporto di Perl per le espressioni regolari è allo stesso tempo ampio e profondo, ed è il soggetto della documentazione che si può trovare in perlrequick, perlretut e altrove. Ad ogni modo, brevemente:
Scrivere subroutineScrivere subroutine è facile:
sub log {
my $messaggiodilog = shift;
print LOGFILE $messaggiodilog;
}
Cos'è quello Si può manipolare
my ($messaggiodilog, $priorita) = @_; # comune
my $messaggiodilog = $_[0]; # poco comune, e orribile
Le subroutine possono anche restituire valori:
sub square {
my $num = shift;
my $result = $num * $num;
return $result;
}
Per ulteriori informazioni sulla scrittura di subroutine, si veda perlsub.
Perl OOLa programmazione orientata agli oggetti in Perl è relativamente semplice ed è implementata usando delle reference che sono a conoscenza di che tipo di oggetto sono, basata sul concetto dei package del Perl. Ad ogni modo, la programmazione orientata agli oggetti in Perl va ampiamente al di lè dello scopo di questo documento. Leggete perlboot, perltoot, perltooc e perlobj. Come programmatori Perl alle prime armi, l'uso più comune della programmazione orientata agli oggetti in Perl che potete fare sarà nell'utilizzo di moduli di terze parti, che è documentato di seguito.
Usare i moduli PerlI moduli Perl forniscono una serie di caratteristiche per aiutarvi a non reinventare la ruota, e possono essere scaricati da CPAN ( http://www.cpan.org ). Un certo numero di moduli di uso comune è incluso nella stessa distribuzione di Perl. Le categorie spaziano dalla manipolazione del testo ai protocolli di rete, dall'integrazione con database alla grafica. Anche una lista di moduli per categoria è disponibile tramite CPAN. Per imparare ad installare i moduli scaricati da CPAN, leggete perlmodinstall. Per imparare ad utilizzare un dato modulo, usate
perlfaq contiene domande e risposte relative a molti compiti comuni, e spesso fornisce suggerimenti sui moduli CPAN validi da usare. perlmod descrive i moduli Perl in generale. perlmodlib elenca i moduli che vengono forniti con la distribuzione Perl standard. Se sentite il bisogno di scrivere moduli Perl, perlnewmod vi darà buoni consigli.
AUTOREKirrily ``Skud'' Robert <skud@cpan.org>
TRADUZIONE
VersioneLa versione su cui si basa questa traduzione è ottenibile con: perl -MPOD2::IT -e print_pod perlintro Per maggiori informazioni sul progetto di traduzione in italiano si veda http://pod2it.sourceforge.net/ .
TraduttoreTraduzione a cura di Stefano Rodighiero <larsen at perl.it>.
RevisoreRevisione a cura di dree. Mon Jun 11 22:02:16 2012 |