HTML::Template
<html> <head> <title><TMPL_VAR NAME="TITOLO"></title> </head> <body> <p>La lista della spesa:</p> <ul> <TMPL_LOOP NAME="L_SPESA"> <li><TMPL_VAR NAME="PRODOTTO"> </TMPL_LOOP> </ul> <TMPL_IF NAME="L_FRUTTA"> <ul> <TMPL_LOOP NAME="L_FRUTTA"> <li><TMPL_VAR NAME="FRUTTO"> </TMPL_LOOP> </ul> <TMPL_ELSE> <p>Non serve frutta.</p> </TMPL_IF> </body> </html> 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."
#!/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.
|