[quote=opi,09.01.2007, 09:43](...) Deshalb halte ich CGI für veraltet. Das Beispiel
von renee ist makellos.[/quote]
Habe ich auch einige Zeit gedacht, aber
CGI zur Konstruktion von HTML geht sehr zügig und wenn keine WebDesigner nochmal ran soll, halte ich es für völlig legitim.
renees Beispiel für Templating könnte sogar noch minimal vereinfacht werden:
# $class = 1 if $col2 eq 'hallo';
my $class = $col2 eq 'hello' ? 'red' : 'green';
und dann im Template:
<td class="<!-- TMPL_VAR NAME=CLASS -->">
<!-- TMPL_VAR NAME=VALUE -->
</td>
Wobei ich die ASP-Style Tags bevorzuge.
Hier noch ein Beispiel für ein ähnliches Skript mit
CGI und
HTML::Table:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
use HTML::Table;
my $cgi = CGI->new;
print # $cgi->header,
$cgi->start_html;
my $t = HTML::Table->new( [map {
s/\b\son/_on/; [split /\s+/]
} split /\n/, qx/df -h/]);
$t->setRowStyle($_,
$_ % 2 == 0 ? 'background-color: #ddd;' : 'background-color: #6d6;'
) for (1..$t->getTableRows);
$t->setRowStyle(1, 'background-color: Ä color: #fff;');
print $t, $cgi->end_html;
Ist AFAIR durch Posts von renee und pq inspiriert gewesen - und aus meiner Sicht als Lösung für eine so simple Problemstellung genauso legitim wie eine Variante mit templating, aber u.U. schneller getippt. Bei gröÃeren Dingen gibt es aber auch aus meiner Sicht keine Alternative zu Templating (bevorzugt mit
HTML::Template::Compiled).
EDIT: Typo\n\n
<!--EDIT|Ronnie|1168336473-->