ungetestet, aber sollte entsprechend funktionieren:
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
#!/usr/bin/perl -w
use strict;
use Data::Dumper;
#use CGI;
#use CGI::Carp qw(fatalsToBrowser);
#use HTML::Template;
#my $template = HTML::Template->new( filename => '1.tmpl' );
#my $cgi = CGI->new();
sub build_selectbox {
my ($l_name, $selected, @options) = @_;
return { $l_name => [ map {
{
selectbox_label => $options[$_],
selectbox_value => $_,
selectbox_selected => $selected == $_ ? 1 : 0,
}
} (0 .. $#options) ] };
}
my @a_array = ( '---', 'Berlin', 'Wien', 'Bern' );
die Dumper &build_selectbox( 'loop_kursort', 2, @a_array );
# $template->param( build_selectbox( 'loop_kursort', 2, @a_array ) );
# print $template->output;
Hier die Ausgabe von Data::Dumper:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$VAR1 = {
'loop_kursort' => [
{
'selectbox_label' => '---',
'selectbox_selected' => 0,
'selectbox_value' => 0
},
{
'selectbox_label' => 'Berlin',
'selectbox_selected' => 0,
'selectbox_value' => 1
},
{
'selectbox_label' => 'Wien',
'selectbox_selected' => 1,
'selectbox_value' => 2
},
{
'selectbox_label' => 'Bern',
'selectbox_selected' => 0,
'selectbox_value' => 3
}
]
};
Ich bin nicht sicher ob man param so verwenden kann, einfacher ist es allemal, wenn man den $l_name erst gar nicht an die Funktion übergibt.\n\n
<!--EDIT|Ronnie|1148334532-->