Newsgroup: it.comp.lang.perl
Titolo: html prestampato da completare con perl

avrei bisogno di un cosiglio sul come procedere
Problema:
voglio generare delle pagine html che hanno una parte fissa e una parte che
invece deve ancora essere completata
uno script perl dovrebbe fornire le informazioni per completare la pagina.
la struttura rigida del html invece vorrei fosse su un altro file, per rendere
facile, sicura e elastica la gestione del tutto.
mi spiego meglio (?) facendo un esempio molto banale:
Questo potrebbe essere il risultato finale
<html><body> Ciao <strong>PIPPO</strong> !</body></html>
ora 'PIPPO' una volta è 'amico' un'altra volta è 'sconosciuto' un'altra ancora
'antonio' piuttosto che 'furbone' ecc.
ci pensa lo script perl a mettere la parola giusta
ma è il file con il codice html a dire dove metterla e come formattarla.
Pensavo a soluzioni di questo genere:
file nomefile.txt con:
<html><body> Ciao <strong>#NOMEVAR#</strong> !</body></html>
far sostituire #NOMEVAR# dallo script perl
imporre la regola che l' "occupa-posto" debba cominciare e finire con
cancelletto '#', cominciare con una lettera [A-Z], contenere solo [A-Z_0-9],
solo masiuscole, max 17 caratteri, ecc.
approfittare di ciò e sostituire (Attenzione! pseudocodice!)
foreach $NomeVar (keys %ValoreVar) {
       $TXT =~ s/#$NomeVar#/$ValoreVar{$NomeVar}/g;
       }
la cosa avrebbe come vantaggio tra l'altro che riesco a vedere come sarà la
pagina html, anche quando lo script perl non funziona.
di per se nulla di trascendentale, ma la mia DOMANDA è:
È un buon modo di risolvere il mio problema, o vista la scarsa originalità del
problema, esistono soluzioni molto più efficienti, efficaci, robuste ecc.?
grazie per i consigli
Antonio

 problema, esistono soluzioni molto più efficienti, efficaci, robuste ecc.?
Mi sembra un modo piu' che ragionevole. L'unica cosa e' che non sono sicuro
che convenga scandire il file una volta per ogni possibile variabile (10
variabili, 10 scansioni) o seguire un approccio del tipo: lo scandisco una
volta sola, cerco le possibili variabili e sostituisco il suo valore, tipo
 foreach $riga (@righe_template)
  {
    $riga =~ s/#([A-Z]+)#/$ValoreVar{$1}/g;
  }
L'effetto e' pero' che le variabili non devinite vengono sostituite con una
stringa vuota.
Esistono anche moduli CPAN per 'meccanizzare' un approccio di questo tipo.
Maurizio
-- 
Maurizio M. Munafo' / 
mmmu...@netscape.net
"Consider Phlebas, who was once handsome and tall as you" (T.S.Eliot)

 Esistono anche moduli CPAN per 'meccanizzare' un approccio di questo tipo.
ho visto che esiste HTML::Subtext, che probabilmente fa al caso mio
qualcuno lo conosce? (funziona a dovere?)
esiste su activestate? (ho cercato, ma mi pare di no)
mi direte: "prova e vedrai", ma il problema è che... non riesco a scompattare i
file "tar.gz". purtroppo vivo nel mondo Windows, l'unzip che ho in ufficio non
funziona per tar.gz e chiaramente non installo programmi che non siano gratuiti
(quelli a pagamento giammai me li daranno :-(

 (quelli a pagamento giammai me li daranno :-(
Beh. Puoi sempre installare la versione shareware, scompattare il file che
ti serve e poi disinstallarla distruggendo le prove :)


 Questo potrebbe essere il risultato finale
