Ich weiß jetzt nicht, ob ich genau verstanden habe, was Du im Endeffekt haben willst. Aber ich habe mal was gemacht:
Template:
<html>
<body>
<!-- TMPL_LOOP NAME=OUTER -->
<select name="<!-- TMPL_VAR NAME=SELNR ESCAPE=HTML -->">
<!-- TMPL_LOOP NAME=LOOP -->
<option <!-- TMPL_IF NAME=SEL -->selected<!-- /TMPL_IF -->><!-- TMPL_VAR NAME=ZIMMER --></option>
<!-- /TMPL_LOOP -->
</select>
<!-- /TMPL_LOOP -->
</body>
</html>
Skript:
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
#! /usr/bin/perl
use strict;
use warnings;
use diagnostics;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use lib qw(./perllib);
use HTML::Template; # musst Du Dir evtl. noch installieren
my $cgi = CGI->new();
my %params = $cgi->Vars();
print $cgi->header(-type => 'text/html');
my $template = HTML::Template->new(filename => '../booking.tmpl');
my @zimmertyp = qw(Einzelzimmer Doppelzimmer Suite Präsidentensuite);
my $loop = [];
foreach(@zimmertyp){
my $selected = 0;
$selected = 1 if($_ eq 'Doppelzimmer');
push(@{$loop},{ZIMMER => $_, SEL => $selected});
}
my $outer = [];
for(1..3){
push(@$outer,{SELNR => 'select'.$_, LOOP => $loop});
}
$template->param(OUTER => $outer);
print $template->output();
Probier es einfach mal aus, ob es das ist, was Du haben willst...