mod_perl and closures

Michael Stillwell mjs at
Sun Jun 22 00:05:00 CDT 2003

I'm not too familiar with mod_perl; are there any mod_perl modules that 
maintain state on the server with closures?  I'm thinking about 
something Apache::ClosureManager in the following (incomplete, 
untested, untypoed, etc.) code:

   package Hangman;

   sub output_html {
     my ($self) = @_;

     my $c = Apache::ClosureManager->new(sub {
       $self->process_cgi_input; # see below

     $c->expires("1 hour");

     my $url = $c->url; # e.g. "/cgi-bin/invoke-closure.cgi?38f4a11bc3"

     print p("You have guessed: ", join(" ", @{$self->{GUESSES}}));
     print p("Enter next guess:");
     print qq{
       <form action="$url" method="post">
         <input type="text" name="guess"/>
         <input type="submit"/>

   sub process_cgi_input {
     my ($self) = @_;

     push @{$self->{GUESSES}}, param("guess");

This would seem to be a nice way to maintain state in some 
circumstances (especially those where you don't/can't care about the 
readability of the URL).


* * *

More information about the Melbourne-pm mailing list