[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