NAME
   Apache::Singleton - Singleton class for mod_perl

SYNOPSIS
     package Printer;
     # default:
     #   Request for mod_perl env
     #   Process for non-mod_perl env
     use base qw(Apache::Singleton);

     package Printer::PerRequest;
     use base qw(Apache::Singleton::Request);

     package Printer::PerProcess;
     use base qw(Apache::Singleton::Process);

DESCRIPTION
   Apache::Singleton works the same as Class::Singleton, but with various
   object lifetime (scope). See the Class::Singleton manpage first.

OBJECT LIFETIME
   By inheriting one of the following sublasses of Apache::Singleton, you
   can change the scope of your object.

   Request
         use base qw(Apache::Singleton::Request);

       One instance for one request. Apache::Singleton will remove instance
       on each request. Implemented using mod_perl "pnotes" API. In
       mod_perl environment (where $ENV{MOD_PERL} is defined), this is the
       default scope, so inheriting from Apache::Singleton would do the
       same effect.

   Process
         use base qw(Apache::Singleton::Process);

       One instance for one httpd process. Implemented using package
       global. In non-mod_perl environment, this is the default scope, and
       you may notice this is the same beaviour with Class::Singleton ;)

       So you can use this module safely under non-mod_perl environment.

AUTHOR
   Original idea by Matt Sergeant <[email protected]> and Perrin Harkins
   <[email protected]>.

   Code by Tatsuhiko Miyagawa <[email protected]>.

   This library is free software; you can redistribute it and/or modify it
   under the same terms as Perl itself.

SEE ALSO
   the Apache::Singleton::Request manpage, the Apache::Singleton::Process
   manpage, the Class::Singleton manpage