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 and Perrin Harkins . Code by Tatsuhiko Miyagawa . 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, the Cache::SharedMemoryCache manpage