#!/usr/bin/perl my $r = shift; use CGI; local our $cgi = new CGI; our $action = ""; $action = $cgi->param("action") || 'test_code'; if ( $action eq "test_code" ) { test_code (); } elsif ( $action eq "run" ) { test_prog ($cgi); } sub test_code { # my ($cgi_sub) = @_; my $cgi_sub = new CGI; print $cgi_sub->header(); print $cgi_sub->start_html( -title => 'Javascript calls from Perl' ); print $cgi_sub->h2("test code"); print $cgi_sub->div($cgi_sub->font({-face=>'Arial'},"Status: ")); print $cgi_sub->start_form(); print $cgi_sub->submit(-name=>'action',-value=>'run'); print $cgi_sub->end_form(); print $cgi_sub->end_html(); } sub test_prog { my ($cgi_sub) = @_; print $cgi_sub->header(); print $cgi_sub->start_html( -title => 'Javascript calls from mod_perl' ); print $cgi_sub->h2("test code"); print <<"EOT" ; EOT for (my $i = 1; $i <= 6; $i++){ if ($i == 6){ newstatus("Aggregating Data..."); sleep (2); newstatus("Analyzing Data..."); sleep (2); newstatus("Finished \(this text is from the server\)"); } else { newstatus("Querying " . "$i" . " out of 5 suppliers"); sleep (1); } } print $cgi_sub->start_form(); print $cgi_sub->submit(-name=>'action',-value=>'run'); print $cgi_sub->end_form(); print $cgi_sub->end_html(); } sub newstatus { my ($s) = @_; print <<"EOT" ; EOT $r->rflush; }