|
Commenta la recensione
"Once you have read the Camel Book, or any other good Perl
tutorial, you know almost all of the language...".
L'introduzione di "Advanced Perl Programming", scritto da Simon
Cozens, inizia con queste parole. E' passato un bel po' di tempo
dalla prima edizione di questo libro e Perl è cresciuto molto. Ed i
suoi libri con lui. Questa edizione è completamente differente da
quella precedente, è molto più improntata sui moduli e sul loro
utilizzo.
Come dice l'autore, questo libro è indicato soprattutto a chi ha già
studiato il Camel Book o Learning Perl (o Lama book) e vuole capire
cosa il Perl può offrire per il lavoro di ogni giorno. L'autore
cerca di mostrarci le potenzialità che il linguaggio ha oggi: la sua
grande flessibilità e la sua immensa libreria, CPAN.
Il primo capitolo ci spiega come esplorare e cambiare il vero
cuore del Perl, la symbol table. Attraverso trucchi con il pragma
overload, con AUTOLOAD e con i moduli UNIVERSAL e CORE Cozens ci
mostra come piegare il potere di Perl per i nostri bisogni.
Il secondo capitolo merita un'attenzione speciale soprattutto per
l'ottima introduzione a Parse::RecDescent, che è lo standard di
fatto nel parsing di strutture complesse. Vengono introdotti anche i
moduli Parse::YAPP, HTML::Parser e XML::Simple.
Svariati tipi di strumenti per il template e per la formattazione
di testi vengono analizzati nel terzo capitolo. Il cuore del
capitolo è lo sviluppo di un aggregatore di feed RSS con tre
differenti moduli: HTML::Template, HTML::Mason e Template::Toolkit.
Quest'ultimo in particolare è spiegato in profondità, tanto che
occupa gran parte del capitolo.
Il capitolo seguente è una panoramica sui vari metodi per
salvare e recuperare strutture di dati complesse. Queste strutture
possono essere organizzate e manipolate come oggetti, e gli oggetti
possono essere serializzati e salvati su database. L'applicazione
d'esempio stavolta è un database per organizzare i CD musicali,
usando moduli come Pixie, Tangram e Class::DBI. Veramente
apprezzabile il paragrafo "Pratical uses in web applications", che è
una stimolante introduzione all'architettura MVC e al framework
Maypole. Purtroppo, Catalyst non viene nemmeno menzionato in questo
capitolo.
Il quinto capitolo parla di tecniche per l'elaborazione del
linguaggio naturale (o NLP, Natural-language processing). Qui Cozens
utilizza alcuni moduli della famiglia Lingua::EN per "giocare" con
l'inglese. Durante il capitolo viene anche descritto un uso del
modulo Algorithm::NaiveBayes per fare il parsing di un feed RSS e
calcolarne l'indice di interesse tramite parole chiave. Un metodo
simile viene utilizzato anche dai filtri anti-spam.
Il supporto di Unicode è stato introdotto in Perl nella serie
5.8 ed il sesto capitolo ci illustra, oltre ad una breve storia
sull'unicode, come maneggiare file in formato UTF-8 sia dal punto di
vista dello sviluppo Perl che XS.
Il capitolo sette è dedicato completamente al meraviglioso
framework POE. Questo modulo viene spiegato usando due piccoli
esempi: un port forward e uno scheletrico web server. La
programmazione event-based non mi è mai stata più chiara e POE è un
gran bel pezzo di codice. :)
Oggi giorno, soprattutto con i linguaggi dinamici, la parte di
testing di un'applicazione complessa è basilare per uno sviluppo
sicuro dell'applicazione. Più codice si scrive in fase, meno se ne
dovrà scrivere in seguito. Cozens questo lo sa bene e tutte le
principali tecniche usate per costruire ambienti di testing sono
sviscerate nel capitolo ottavo.
Il nono capitolo tratta di come uno sviluppatore Perl possa usare
altri linguaggi all'interno dei propri script per aumentare le
performance (o per semplice divertimento) usando Inline::C, Inline::CPR,
Inline::Ruby e Inline::Python. Personalmente non conosco a fondo
i linguaggi elencati, quindi non posso dare un giudizio oggettivo,
ma è rassicurante sapere che in Perl è disponibile anche questa
possibilità.
L'ultimo capitolo è intitolato "Fun with Perl". Ora, io non so se
il divertimento possa essere considerato come programmazione
avanzata, ma sicuramente il divertimento è una componente
fondamentale per ogni sviluppatore. Grazie a questo capitolo,
possiamo vedere cosa fa un perl hacker nel proprio tempo libero per
rilassarsi.
"Dai ad un uomo un pesce; Lo avrai sfamato per un giorno.
Insegna a quest'uomo a pescare e lo avrai sfamato per una vita
intera". Questo libro segue sicuramente questa filosofia,
insegnandoci come pescare in quel grande mare chiamato CPAN. Ogni
capitolo di questo libro affronta molti dei problemi pratici che un
programmatore affronta ogni giorno, facendolo sempre con esempi
reali presi dalla lunga esperienza dell'autore. Questo tipo di
esempi sono i migliori per capire l'applicazione dei concetti.
Un ottimo libro per tutti quei programmatori Perl smaliziati.
|