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
34
35
36
37
38
use strict;
use warnings;
use Template;
use CGI qw(param);
use CGI::Carp qw(fatalsToBrowser);
$CGI::DISABLE_UPLOADS = 1;
my $auswahl = param('dateien');
my $dateiname;
my $dir = "C:/xampp/cgi-bin";
opendir(DIR, "$dir") or die("Fehler beim Öffnen: $!");
my @dateien = grep /\.dat$/, readdir(DIR);
closedir(DIR) or die("Fehler beim Schließen: $!");
print "Content-type: text/html\n\n";
my $t = Template->new();
$t->process(\*DATA, { dateien => \@dateien, auswahl => $auswahl });
__END__
<html>
<head>
<title>Test</title>
</head>
<body>
<form action="" method="post">
<select name="dateien">
[% FOREACH name = dateien %]
<option value="[% name %]">[% name %]</option>
[% END %]
</select>
<input type="submit" value="Senden">
[% IF auswahl %]
<input type="text" name="data" value="[% auswahl %]">
[% END %]
</form>
</body>
</html>
Ich weiß zwar nicht warum du in deinem Beispiel <input> benötigst um
den Dateinamen anzuzeigen, aber du wirst es schon wissen. ;)
Und wenn du dir was gutes tun möchtest, dann versuche nicht
HTML::Template zu verwenden. Irgendwann wirst du merken, das das
bauen von AoH (Array of Hashes) ziemlich umständlich werden kann.\n\n
<!--EDIT|opi|1183770788-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.