use CGI qw(:all delete_all escapeHTML);
my $redirect_page = "display_page.cgi";
if (my $session = param('session')) { # returning to pick up session
#
# ...(2) redirect
#
my $data = $cache->get($session);
if ( $data->[0] ){
#
# ...(2a) flag set
#
}
else{
# ....
}
elsif ( (my $slp = param('sleep')) eq 'sleep') {
# ....(1) first invocation
$cache->set($session, [0, ""]); # no data yet
if (my $pid = fork) { # parent does
#
# ....(1a) fork: parent
#
print redirect(self_url());
}
elsif (defined $pid) { # child does
#
# ....(1b) fork: child
#
$cache->set($session, [1, $buf]);
exit 0;
}
else {
# ....
}
}
else { # display form
# ....
}
# ....