Thread HTML Formulare und Perl (23 answers)
Opened by kruemmel at 2007-07-24 20:47

renee
 2007-07-25 11:59
#78793 #78793
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@bieber: Dein Code mal mit CPAN:HTML::Template::Compiled:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/bin/perl

use strict;
use warnings;
use HTML::Template::Compiled;

my $template = HTML::Template::Compiled->new(
    filehandle => *DATA,
);

my @values;
my $jahr = 2027;

for( 2007 .. 2059 ){
    # fuege die Hashreferenz fuer jede Option hinzu
    push @values, {
        year     => $_,
        selected => $_ == $jahr,
    };
}

$template->param( JAHRE => \@values );
print $template->output;


__DATA__
<form method="post" action="index.pl ">
<select name="JAHR">
<%loop JAHRE%>
    <option <%if selected%>selected<%/if%>><%var year %></option>
<%/loop%>
</select>
</form>


Bei so kleinen Beispielen kommen die Vorteile von Templates noch nicht so stark zur Geltung, aber es gibt sehr viele davon:

* Bessere Übersicht im Perl-Programm: Wenn im Perl-Code ein Fehler ist, muss man sich nicht noch zusätzlich durch ein paar hundert Zeilen HTML-Text kämpfen.

* Leichtere Austauschbarkeit des Designs: Im Template hat man einen kompletten HTML-Text vor sich. Da ist das Design besser zu verändern. Das HTML ist nicht in viele kleine Teile aufgeteilt. Man muss nur den neuen Template-Namen im Perl-Code eintragen (oder einfach das alte Template ändern). Man muss das Perl-Programm nicht anfassen.

* Man kann ein komplettes Design machen, ohne das Perl-Programm zu haben. Steht das Design müssen die dynamischen Inhalte nur noch durch Template-Variablen ersetzt werden und schon steht der HTML-Teil. Ich muss mir nicht noch überlegen wo im Perl-Code muss ich den HTML-Text einfügen?

* Template-Engines nehmen einem viel Arbeit ab: Bei CPAN:HTML::Template::Compiled kann man zum Beispiel ein "default_escape" angeben. Man muss sich dann nicht mehr um das Escapen der dynamischen Inhalte kümmern. So kann man zum Beispiel das Risiko von Cross-Site-Scripting zumindest einschränken wenn man "default_escape" auf 'HTML' setzt.

* und noch einige mehr...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread HTML Formulare und Perl