Apache::Singleton - Singleton class for mod_perl
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);
Apache::Singleton works the same as Class::Singleton, but with various object lifetime (scope). See Class::Singleton first.
By inheriting one of the following sublasses of Apache::Singleton, you can change the scope of your object.
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.
pnotes
$ENV{MOD_PERL}
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.
Original idea by Matt Sergeant <matt@sergeant.org> and Perrin Harkins <perrin@elem.com>.
Code by Tatsuhiko Miyagawa <miyagawa@bulknews.net>.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Apache::Singleton::Request, Apache::Singleton::Process, Class::Singleton
To install Apache::Singleton, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Apache::Singleton
CPAN shell
perl -MCPAN -e shell install Apache::Singleton
For more information on module installation, please visit the detailed CPAN module installation guide.