%red%+++'''HTML::Template'''+++%red% img://www.isogest.org/Home/guest/images/opliti.png HTML::Template è un modulo adatto per lavoretti piccoli e veloci, cioè quando dovete per forza usare un template ma non ne avete voglia. Non è sintatticamente elegante come Petal, non è potente e versatile come TT2, è difficilmente scalabile per progetti grandi, ma funziona bene ed è esattamente ciò che vi serve per quanto detto sopra! Il modulo, scritto interamente in Perl, suporta semplici sostituzioni di variabili, condizioni e loop. Questo esempio mostra le principali caratteristiche di HTML::Template: <TMPL_VAR NAME="TITOLO">

La lista della spesa:

Non serve frutta.

Il titolo è una semplice sostituzione, mentre poi vi sono due loop, uno dei quali (quello relativo alla frutta) è inserito in un blocco delimitato da una condizione: se l'array L_FRUTTA esiste viene creata la lista non numerata, altrimenti viene visualizzato il testo "Non serve frutta." Ed ecco il programmino Perl che popola e stampa il template: #!/usr/local/bin/perl use strict; use warnings; use HTML::Template; my @l_spesa = ( { PRODOTTO => 'Zucchero' }, { PRODOTTO => 'Yogurt' }, { PRODOTTO => 'Pane' }, { PRODOTTO => 'Cereali' } ); my @l_frutta = ( { FRUTTO => 'Banane' }, { FRUTTO => 'Mele' } ); my $t = new HTML::Template(filename => 'miotpl.html'); $t->param( TITOLO => "La lista della spesa", L_SPESA => \@l_spesa, L_FRUTTA => \@l_frutta ); print $t->output(); Ciò che va passato al modulo è dunque un hash, che può contenere reference a degli array (necessari per popolare i loop) che a loro volta devono contenere reference ad altri hash. Il sistema è dunque immediato e semplice, e per i vostri attimi quick&dirty è l'ideale. Buon divertimento. ;-)