[Flug] mettere su un serverino http in perl.
Franco Bagnoli
franco.bagnoli@unifi.it
Mar 17 Dic 2002 18:19:47 CET
Problema: come inserire i dati necessari in un programma scientifico e
controllare il suo funzionamanto in maniera grafica, possibilmente senza
che l'autore del programma debba imparare un linguaggio.
Ho fatto degli esperimenti con perl/tk, gtk, expect, ecc. e non sono
molto soddisfatto. Inoltre mi piacerebbe fare il tutto via web, ovvero
tramite CGI. Apache e cgi sono una soluzione, ma tocca mettere mano alla
configurazione del server, cosa non sempre possibile. Mi piacerebbe un
serverino http minimale, scritto in perl o in c.
Ho scritto il seguente programmetto, ma ho il problema di "recuperare"
la query (che in questo momento viene stampata al terminale) per
passarla al modulo CGI. Potrei farlo a mano, facendo il parsing di
$r->as_string ma sono sicuro che c'č un
metodo pių facile. Qualcuno di voi lo sa? Oppure ha altri
suggerimenti? (tipo usare miniserv.pl....)
--------------------------------------------------------------
#!/usr/bin/perl
use HTTP::Daemon;
use HTTP::Status;
use CGI qw/:standard/;
my $d = HTTP::Daemon->new || die;
print "Please contact me at: <URL:", $d->url, ">\n";
my $q=new CGI;
$form = join '',
start_html,
start_form(action=>$d->url),
textfield(-name=>'nome'),
submit(-name=>"pigiami", -value=>"ok"),
end_form,
end_html,
;
while (my $c = $d->accept) {
while (my $r = $c->get_request) {
if ($r->method eq 'GET' ) {
print "una richiesta: ", $r->as_string,"\n";
} else {
print "qualcos'altro\n";
}
$r=HTTP::Response->new(RC_OK);
$r->content($form);
$c->send_response($r);
}
$c->close;
undef($c);
}
--
Franco Bagnoli (franchino) <franco.bagnoli@unifi.it> (bagnoli@dma.unifi.it)
virtual location: Dipartimento di Energetica "S. Stecco"
real location: Dip. Matematica Applicata "G. Sansone", Universita' Firenze,
Via S. Marta, 3 I-50139 Firenze, Italy. Tel. +39 0554796422, fax: +39 055471787
GPG Key fingerprint = 169D 9EA5 8FD3 7EDA E43A 9830 255F BCEC 0D63 3728
Maggiori informazioni sulla lista
flug