Una dintre sarcinile frecvente cu care se confruntă un programator Web este de a separa logica de a obține date din formatul de reprezentare a datelor. Pentru a rezolva această problemă, se folosesc adesea șabloane ale documentelor html, care sunt umplute cu date când programele sunt difuzate. Acest lucru vă permite să faceți aspectul paginilor către o altă persoană sau să modificați aspectul paginilor fără a schimba programul în sine.
CPAN oferă programatorului posibilitatea de a alege diferite modalități de lucru cu șabloanele. Printre acestea: HTML :: Template, Text :: Template, Template toolkit. De regulă, metoda de lucru cu toate aceste module este aceeași. Programatorul creează un obiect care indică șablonul dorit, apoi este creat un set de date pentru a umple șablonul, iar șablonul este completat și rezultatul este returnat ca pagină HTML terminată. Să examinăm mai atent modulul HTML :: Template.
HTML :: Template permite programatorului să controleze lucrul cu șabloanele. De exemplu, dacă utilizați acest modul în combinație cu mod_perl, puteți utiliza cache-ul șabloanelor parsate și utilizați rezultatele în diferite scripturi. Pe lângă cache, programatorul poate specifica filtre care vor procesa textul generat. Toți parametrii de șablon sunt setați la crearea unui obiect care descrie șablonul.
Creați un obiect
Iată un exemplu de creare a unui obiect dintr-un șablon aflat în fișierul template.tmpl, în timp ce se specifică faptul că numele șablonului vor fi minuscule:
$ template = HTML :: Template-> new (nume fișier => 'template.tmpl', case_sensitive => 1);
În cazul în care sistemul este setat variabila de mediu $ HTML_TEMPLATE_ROOT, iar șablonul este setat numele de fișier relativ, atunci numele va fi adăugată la valoarea de $ HTML_TEMPLATE_ROOT.
Obținerea de rezultate
Pentru a obține un șablon umplut, pur și simplu apelați funcția de ieșire pentru obiectul dorit. Textul generat este returnat. Starea obiectului șablon nu se modifică.
Întrucât foarte des rezultatul lucrării este scris într-un fișier, pentru a reduce sarcina, puteți utiliza parametrul print_to pentru a trece funcția de ieșire a descriptorului de fișier la care vor fi afișate rezultatele. De exemplu, astfel:
$ template-> output (print_to => * STDOUT);
Introducerea de variabile
Pentru a insera datele într-un șablon, trebuie să le completați cu funcția param. Funcția param este trecută printr-un hash de date sub forma unei valori = =>. Pentru structurile complexe de date, de exemplu, pentru bucle imbricate, valoarea poate fi o referință la liste și alte hashes. Iată un exemplu de utilizare simplă a modulului:
# deschideți fișierul șablonului
$ template = HTML :: Template-> new (nume fișier => 'test.tmpl');
# completați parametrii șablonului
$ template-> param (HOME => $ ENV, PATH => $ ENV);
# trimiteți antetul Content-Type
tipăriți "Content-Type: text / html \ n \ n";
# emite rezultatul final
print $ template-> output;
Pentru a utiliza o variabilă denumită VARNAME într-un șablon,
Procesarea variabilelor de ieșire poate fi controlată de parametrul tag-ul numit ESCAPE. Valorile valide sunt HTML și URL, iar caracterele care nu sunt rezolvate în acest context sunt convertite.
Operatorii condiționați
O altă construcție frecvent utilizată este starea. Are forma
Opus etichetei de acțiune
Funcția param poate fi de asemenea folosită pentru a obține valoarea parametrului specificat. Pentru a face acest lucru, pur și simplu apelați funcția cu numele parametrului dorit.
Operatorul ciclului
O etichetă importantă este o etichetă care indică un ciclu. Are următoarea sintaxă:
Dacă scriem în șablonul nostru, de exemplu, o astfel de construcție
Numele tau: | poziţia: |