[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