Ueblich ist es Programmcode von Darstellung zu trennen, so verwendet man Templates die Platzhalter enthalten die durch das Programm mit entsprechenden Werten gefuellt werden.
Dadurch kann der Designer leicht das Layout der Templates veraendern ohne dass er etwas ueber die Programmiersprache wissen muss.Fuer Perl gibt es eine Reihe solcher Template-Engines (HTML::Template, HTML::Template::Compiled, Template::Toolkit, Petal, ...), ein Beispiel fuer Template-Toolkit das ueber eine Schleife eine Benutzerliste ausliest und Links zum Bearbeiten des Benutzer erstellt.
[%# File: userlist.tt %]<ul>
[% FOREACH user IN user_list %]
<li>
<a href="[% base_url _ '/edit/user?user_id=' _ user.id %]">
Edit: [% user.name %]
</a>
</li>
[% END %]
</ul>
Diese Benutzerliste ist nur eine Teilkomponente und kann in jeden anderen Template eingebunden werden, zum Beispiel auf der Indexseite:
[# File: index.tt' %]
<html>
<head>
<title>
Index Page
</title>
</head>
<body>
[% INCLUDE 'userlist.tt' %]
</body>
</html>
Im Perlcode wuerde man dann die Datenstruktur fuer die Benutzerliste aufbauen, an das 'index.tt'-Template als Parameter uebergeben, verarbeiten und ausgeben.
# ...my $userlist = [
{ id => 1,
name => 'BenutzerA' },
{ id => 2,
name => 'BenutzerB' },
# ...
];
my $template = Template->new();
$template->process('index.tt', { user_list => $userlist) or die $template->error;
Beispiele sind on-the-fly geschrieben, also ohne Gewaehr.
Datum: 29.06.2007-14:12
