| NOME |
perl - Practical Extraction and Report Language [Linguaggio Pratico di Estrazione e Report, NdT]
perl [ -sTuU ] [ -hv ] [ -V[:variabilediconfigurazione] ] [ -cw ] [ -d[:debugger] ] [ -D[numero/lista] ] [ -pna ] [ -Fpattern ] [ -l[ottale] ] [ -0[ottale] ] [ -Idirectory ] [ -m[-]modulo ] [ -M[-]'modulo...' ] [ -P ] [ -S ] [ -x[directory] ] [ -i[estensione] ] [ -e 'comando' ] [ -- ] [ filedelprogramma ] [ argomento ]...
Se per voi il Perl è una novità, dovreste iniziare con the perlintro manpage, una introduzione per principianti che fornisce qualche informazione generale per aiutarvi a consultare il resto dell'ampia documentazione.
Per facilitarne l'accesso, il manuale del Perl è stato suddiviso in diverse parti.
perl Perl in generale (questa parte)
perlintro Introduzione al Perl per principianti
perltoc Sommario della documentazione del Perl
perlreftut Breve introduzione ai riferimenti in Perl
perldsc Introduzione alle strutture dati del Perl
perllol Strutture dati del Perl: liste di liste
perlrequick Espressioni regolari in Perl in una breve sintesi
perlretut Tutorial alle espressioni regolari in Perl
perlboot Tutorial per principianti al Perl orientato agli oggetti
perltoot Tutorial al Perl orientato agli oggetti, prima parte
perltooc Tutorial al Perl orientato agli oggetti, seconda parte
perlbot Perl orientato agli oggetti, trucchi ed esempi
perlstyle Guida allo stile in Perl
perlcheat Promemoria Perl
perltrap Trappole del Perl per gli incauti
perldebtut Tutorial al debugging in Perl
perlfaq Perl FAQ: risposte alla domande pił frequenti
perlfaq1 Domande generali sul Perl
perlfaq2 Ottenere ed imparare Perl
perlfaq3 Strumenti di programmazione
perlfaq4 Manipolazione dei dati
perlfaq5 File e formati
perlfaq6 Espressioni regolari
perlfaq7 Questioni generali sul linguaggio Perl
perlfaq8 Interazione con il sistema
perlfaq9 Programmazione di rete
perlsyn Sintassi Perl
perldata Strutture dati in Perl
perlop Operatori e precedenza in Perl
perlsub Subroutine in Perl
perlfunc Funzioni predefinite del Perl
perlopentut Tutorial all'open() di Perl
perlpacktut Tutorial per pack() e unpack()
perlpod Documentazione POD (plain old documentation) di programmi Perl
perlpodspec Specifiche di formattazione della documentazione POD di programmi Perl
perlrun L'esecuzione del Perl e le opzioni
perldiag Messaggi di diagnostica del Perl
perllexwarn Gli warning del Perl e il loro controllo
perldebug Debugging del Perl
perlvar Variabili predefinite in Perl
perlre Espressioni regolari in Perl, il resto della storia
perlreref Guida veloce alle espressioni regolari in Perl
perlref Riferimenti in Perl, il resto della storia
perlform Formati in Perl
perlobj Oggetti in Perl
perltie Oggetti Perl nascosti dietro a semplici variabili
perldbmfilter Filtri DBM in Perl
perlipc Comunicazione tra processi in Perl
perlfork Informazioni su fork() in Perl
perlnumber Semantica dei numeri in Perl
perlthrtut Tutorial ai thread in Perl
perlothrtut Vecchio tutorial ai thread in Perl
perlport Guida alla portabilita` del codice Perl
perllocale Supporto del Perl al locale
perluniintro Introduzione al Perl per Unicode
perlunicode Supporto del Perl per Unicode
perlebcdic Considerazioni sull'esecuzione di codice Perl su piattaforme EBCDIC
perlsec Perl e sicurezza
perlmod Moduli Perl: come funzionano
perlmodlib Moduli Perl: come scriverli e usarli
perlmodstyle Moduli Perl: come scriverli con stile
perlmodinstall Moduli Perl: come installarli da CPAN
perlnewmod Moduli Perl: preparare un nuovo modulo per la distribuzione
perlutil Utilita` incluse nella distribuzione del Perl
perlcompile Introduzione al compilatore del Perl
perlfilter Filtri del sorgente del Perl
perlglossary Glossario del Perl
perlembed Modalita` di inclusione di codice Perl in applicazioni C o C++
perldebguts Meccanismi e suggerimenti al debugging del Perl
perlxstut Tutorial a XS in Perl
perlxs Interfaccia del Perl alla programmazione delle applicazioni in XS
perlclib Sostituzione interna per librerie standard di funzioni C
perlguts Funzioni interne del Perl per coloro che sviluppano estensioni
perlcall Convenzioni di chiamata di Perl da C
perlapi Lista delle API Perl (autogenerata)
perlintern Funzioni interne del Perl (autogenerata)
perliol API C per l'implementazione in perl di IO in layer (NdT: strati)
perlapio Interfaccia all'astrazione IO interna del Perl
perlhack Guida all'"hacking" del Perl
perlbook Informazioni di libri sul Perl
perltodo Cose da fare sul Perl
perldoc Look up Perl documentation in Pod format
perlhist Registrazioni storiche di Perl
perldelta Modifiche del Perl dalla versione precedente
perl587delta Modifiche del Perl nella versione 5.8.7
perl586delta Modifiche del Perl nella versione 5.8.6
perl585delta Modifiche del Perl nella versione 5.8.5
perl584delta Modifiche del Perl nella versione 5.8.4
perl583delta Modifiche del Perl nella versione 5.8.3
perl582delta Modifiche del Perl nella versione 5.8.2
perl581delta Modifiche del Perl nella versione 5.8.1
perl58delta Modifiche del Perl nella versione 5.8.0
perl573delta Modifiche del Perl nella versione 5.7.3
perl572delta Modifiche del Perl nella versione 5.7.2
perl571delta Modifiche del Perl nella versione 5.7.1
perl570delta Modifiche del Perl nella versione 5.7.0
perl561delta Modifiche del Perl nella versione 5.6.1
perl56delta Modifiche del Perl nella versione 5.6
perl5005delta Modifiche del Perl nella versione 5.005
perl5004delta Modifiche del Perl nella versione 5.004
perlartistic Diritti d'autore sul Perl
perlgpl Licenza pubblica generica (GNU)
perlcn Perl per la lingua cinese semplificata (EUC-CN)
perljp Perl per la lingua giapponese (EUC-JP)
perlko Perl per la lingua coreana (in EUC-KR)
perltw Perl per la lingua cinese trazizionale (Big5)
perlaix Osservazioni sul Perl per AIX
perlamiga Osservazioni sul Perl per AmigaOS
perlapollo Osservazioni sul Perl per Apollo DomainOS
perlbeos Osservazioni sul Perl per BeOS
perlbs2000 Osservazioni sul Perl per POSIX-BC BS2000
perlce Osservazioni sul Perl per WinCE
perlcygwin Osservazioni sul Perl per Cygwin
perldgux Osservazioni sul Perl per DG/UX
perldos Osservazioni sul Perl per DOS
perlepoc Osservazioni sul Perl per EPOC
perlfreebsd Osservazioni sul Perl per FreeBSD
perlhpux Osservazioni sul Perl per HP-UX
perlhurd Osservazioni sul Perl per Hurd
perllinux Osservazioni sul Perl per Linux
perlirix Osservazioni sul Perl per Irix
perlmachten Osservazioni sul Perl per Power MachTen
perlmacos Osservazioni sul Perl per Mac OS (Classic)
perlmacosx Osservazioni sul Perl per Mac OS X
perlmint Osservazioni sul Perl per MiNT
perlmpeix Osservazioni sul Perl per MPE/iX
perlnetware Osservazioni sul Perl per NetWare
perlopenbsd Osservazioni sul Perl per OpenBSD
perlos2 Osservazioni sul Perl per OS/2
perlos390 Osservazioni sul Perl per OS/390
perlos400 Osservazioni sul Perl per OS/400
perlplan9 Osservazioni sul Perl per Plan 9
perlqnx Osservazioni sul Perl per QNX
perlsolaris Osservazioni sul Perl per Solaris
perltru64 Osservazioni sul Perl per Tru64
perluts Osservazioni sul Perl per UTS
perlvmesa Osservazioni sul Perl per VM/ESA
perlvms Osservazioni sul Perl per VMS
perlvos Osservazioni sul Perl per Stratus VOS
perlwin32 Osservazioni sul Perl per Windows
Di regola le pagine di documentazione sopraelencate sono installate nella directory /usr/local/man/.
È disponibile una documentazione aggiuntiva specifica per i moduli Perl. La configurazione standard del Perl prevede il posizionamento di tale documentazione nella directory /usr/local/lib/perl5/man (altrimenti nella sottodirectory man nella directory riservata ai moduli). Parte di questa documentazione aggiuntiva è inclusa nella distribuzione standard del Perl, ma è possibile che sia inclusa anche documentazione di moduli sviluppati da terze parti.
Dovreste essere in grado di vedere la documentazione del Perl con il
vostro programma man(1) avendo inserito le giuste directory negli appropriati
file di inizializzazione o nella variabile di ambiente MANPATH.
Per sapere dove sono installate le documentazioni secondo la vostra
configurazione, digitate:
perl -V:man.dir
Se le directory hanno una derivazione in comune, del tipo
/usr/local/man/man1 e /usr/local/man/man, è sufficiente aggiungere
tale derivazione (/usr/local/man) ai file di inizializzazione di
man(1) o nella variabile di ambiente MANPATH. In caso contrario,
è necessario aggiungere l'indicazione di entrambe.
Se per qualche ragione non dovesse funzionare, potreste sempre usare lo script perldoc fornito per visualizzare informazioni sui moduli. Potreste anche prendere in considerazione una rimpiazzo per il programma man.
Se qualcosa va storto con il vostro programma e non siete sicuri su dove cercare aiuto, provate prima l'opzione -w. Molto spesso fornirà esatte indicazioni su dove è localizzato il problema.
Il Perl è un linguaggio ottimizzato per la scansione di qualsivoglia file di testo, per l'estrazione di informazioni da questi file, e per la stampa di report basati su tale informazione. È inoltre un buon linguaggio per finalità di amministrazione di sistemi. Il linguaggio è volto più alla praticità (facile da usare, efficiente, completo) che alla bellezza (breve, elegante, minimale).
Il Perl combina (opinione dell'autore, almeno) alcune delle migliori caratteristiche del C, sed, awk, e sh, in modo tale che chi ha dimestichezza con questi linguaggi dovrebbe avere poche difficoltà. (Gli storici dei linguaggi troveranno anche alcune vestigia di csh, Pascal, e pure BASIC-PLUS.) La sintassi delle espressioni ha una forte somiglianza con quella del C. A differenza di molte utility di Unix, il Perl non limita arbitrariamente le dimensioni dei vostri dati; se disponete di sufficiente memoria, Perl può accalappiare l'intero vostro file come una singola stringa. La ricorsione ha profondità illimitata. E le tabelle utilizzate per gli hash (talvolta chiamate ``array associativi'') crescono - se necessario - per prevenire peggioramenti in termini di performance. Il Perl può utilizzare tecniche sofisticate di pattern matching per la scansione veloce di grandi quantità di dati. Sebbene ottimizzato per la scansione di testi, Perl può anche trattare dati in forma binaria e può fare in modo da trattare come hash i file ``dbm''. Gli script ``setuid'' in Perl sono più sicuri degli equivalenti in C a causa di un meccanismo di tracciamento del dataflow che previene diverse stupide falle di sicurezza.
Se avete un problema che richiederebbe l'uso di sed o awk o sh, ma eccede le loro capacità o volete che venga risolto un po' più velocemente, e non volete scrivere stupidaggini in C, allora il Perl potrebbe fare al caso vostro. Esistono anche dei traduttori per trasformare i vostri script sed e awk in codice Perl.
Ma aspettate, c'è dell'altro...
Nel 1993 (si veda the perlhist manpage) è iniziata una riscrittura quasi completa della versione 5 del Perl che comporta i seguenti benefici addizionali:
Descritto in the perlmod manpage, the perlmodlib manpage, e the perlmodinstall manpage.
integrabilità e estendibilitàDescritto in the perlembed manpage, the perlxstut manpage, the perlxs manpage, the perlcall manpage, the perlguts manpage, e xsubpp.
variabili magiche fai-da-te (incluse multiple implementazioni DBM simultanee)Descritto in the perltie manpage e the AnyDBM_File manpage.
le subroutine possono adesso essere overridden, autoloaded, e prototipizzateDescritto in the perlsub manpage.
strutture dati arbitrariamente annidate e funzioni anonimeDescritto in the perlreftut manpage, the perlref manpage, the perldsc manpage, e the perllol manpage.
programmazione orientata agli oggettiDescritto in the perlobj manpage, the perlboot manpage, the perltoot manpage, the perltooc manpage, e the perlbot manpage.
supporto per processi light-weight [leggeri, NdT] (thread)Descritto in the perlthrtut manpage e the threads manpage.
supporto per Unicode, internazionalizzazione e localizzazioneDescritto in the perluniintro manpage, the perllocale manpage e the Locale::Maketext manpage.
scoping lessicaleDescritto in the perlsub manpage.
miglioramenti alle espressioni regolariDescritto in the perlre manpage, con esempi addizionali in the perlop manpage.
enhanced debugger e ambiente Perl interattivo, con supporto integrato all'editorDescritto in the perldebtut manpage, the perldebug manpage e the perldebguts manpage.
libreria conforme a POSIX 1003.1Descritto in the POSIX manpage.
Ok, di promozione ce n'è veramente abbastanza.
Perl è disponibile per più sistemi operativi, incluse virtualmente tutte le piattaforme che si basano su Unix. Si veda Supported Platforms in the perlport manpage [``Piattaforme supportate'', NdT] per un elenco.
Si veda the perlrun manpage.
Larry Wall <larry@wall.org>, con l'aiuto di suggerimenti di altra gente.
Se le vostre storie e testimonianze di successo con Perl possono essere di aiuto ad altri che desiderano raccomandare l'uso del Perl nelle loro applicazioni, o se desiderate semplicemente esprimere la vostra gratitudine a Larry e agli sviluppatori del Perl, scrivete a perl-thanks@perl.org.
"@INC" posizionamenti delle librerie Perl
a2p traduttore da awk a perl s2p traduttore da sed a perl
http://www.perl.org/ la homepage di Perl http://www.perl.com/ articoli sul Perl (O'Reilly) http://www.cpan.org/ l'archivio completo del Perl http://www.pm.org/ i Perl "Mongers"
L'utilizzo della direttiva use warnings (e dell'opzione -w)
produce qualche diagnostica carina.
Si veda the perldiag manpage per una spiegazione di tutte le diagnostiche del
Perl. La direttiva use diagnostics trasforma automaticamente gli warning
concisi del Perl e gli errori, in queste forme più estese.
Gli errori di compilazione indicheranno il numero della linea di codice che ha causato l'errore, con una indicazione del simbolo successivo o del tipo di simbolo che avrebbe dovuto essere esaminato. (In ogni script eseguito con l'opzione -e, ogni -e è contato come una linea).
Gli script ``setuid'' hanno restrizioni addizionali che possono produrre messaggi di errore del tipo ``Insecure dependency'' [``dipendenza rischiosa'', NdT]. Si veda the perlsec manpage.
Abbiamo menzionato che è caldamente consigliato l'uso dell'opzione -w?
L'opzione -w non è obbligatoria.
Il Perl è alla mercé di come la vostra macchina definisce varie operazioni come casting dei tipi, atof(), e output di floating-point con sprintf().
Se la vostra stdio richiede un seek o un eof tra letture e scritture
su uno certo stream, la stessa cosa vale per il Perl. (Ciò non vale per
sysread() e syswrite()).
Benché nessuno dei tipi di dato primitivi abbia un qualche limite in termini di dimensioni (ad eccezione della memoria disponibile), ci sono sempre alcuni limiti: il nome delle variabili non può essere più lungo di 251 caratteri. I numeri di linea visualizzati per le diagnostiche sono memorizzati internamente come short integers (interi), per cui sono limitati fino a un massimo di 65535 (numeri maggiori di solito sono tagliati).
Potete spedire i vostri bug report (siate sicuri di includere
l'informazione completa sulla configurazione così come viene
riportata in output dal programma myconfig nella directory del
sorgente del Perl, o eseguendo perl -V) a perlbug@perl.org.
Se avete compilato Perl con successo, lo script perlbug nelle
utils/ sottodirectory può essere usato come aiuto per spedire
un bug report.
Perl in realtà sta per Pathologically Eclectic Rubbish Lister [``patologicamente eclettico elencatore di robaccia'', NdT], ma non dite a nessuno che ve l'ho detto.
Il motto del Perl è ``C'è più di un modo per farlo''. Indovinare quanti modi in più è lasciato per esercizio al lettore.
Le tre principali virtù di un programmatore sono Pigrizia, Impazienza e Arroganza. Si veda il perché nel libro del cammello.
La versione su cui si basa questa traduzione è ottenibile con:
perl -MPOD2::IT -e print_pod perl
Per maggiori informazioni sul progetto di traduzione in italiano si veda http://pod2it.sourceforge.net/ .
Traduzione a cura di Raffaello Galli <galliraf at googlemail punto com>.
Revisione a cura di dree.
| NOME |