Thread Perlskript ueber HTML-Seite aufrufen (5 answers)
Opened by havi at 2007-04-12 13:29

Ronnie
 2007-04-12 14:02
#75969 #75969
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
mal auf die Schnelle, ohne jede Garantie:
Code: (dl )
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/perl

use strict;
use warnings;

package Widget::Select;
use Moose;
use overload '""' => \&as_form;

has 'tuple' => (is => 'rw'); # ID, Text, ...
has 'name' => (is => 'rw');
has 'selection' => (is => 'rw');

sub set_tuple {
my $self = shift;
$self->{tuple} = [@_] if @_ % 2 == 0;
}

sub as_form {
my $self = shift;
my @l = @{$self->{tuple}}; # non destructive

my $o = '<select name="' . $self->name . "\">\n";

while (my ($k, $v) = splice @l, 0, 2) {
$o .= ($k eq $self->selection) ?
'<option selected value="'. $k .'">'. $v .'</option>'."\n" :
'<option value="'. $k .'">'. $v .'</option>'."\n";
}

$o .= '</select>' . "\n";
return $o;
}

package main;

use CGI;

my $q = CGI->new;

my $wdgt = Widget::Select->new( name => 'select_excel' );
$wdgt->set_tuple( map { $_, $_ } <*.pl> );

my $message = 'Choose file to process ...';

if ($q->param('.submit')) {
my $choosen = $q->param('select_excel');
# qx ( /path/to/script.pl $choosen );
$message = $choosen . ' was processed.';
}

print $q->header, $q->start_html, $message, $q->hr,
$q->start_form, $wdgt, $q->submit,
$q->end_form, $q->end_html;

EDIT: $message hinzugefügt
EDIT2: overload '""' hinzugefügt\n\n

<!--EDIT|Ronnie|1176373971-->

View full thread Perlskript ueber HTML-Seite aufrufen