ModPerl::Global -- Perl API for manipulating special Perl lists
use ModPerl::Global (); my $package = 'MyApache2::Package'; # make the END blocks of this package special ModPerl::Global::special_list_register(END => $package); # Execute all encoutered END blocks from this package now ModPerl::Global::special_list_call( END => $package); # delete the list of END blocks ModPerl::Global::special_list_clear( END => $package);
ModPerl::Global
provides an API to manipulate special perl
lists. At the moment only the END
blocks list is supported.
This API allows you to change the normal Perl behavior, and execute special lists when you need to.
For example
ModPerl::RegistryCooker
uses it to run END
blocks in the scripts at the end of each
request.
Before loading a module containing package $package
, you need to
register it, so the special blocks will be intercepted by mod_perl and
not given to
Perl. special_list_register
does
that. Later on when you want to execute the special blocks,
special_list_call
should be called. Unless
you want to call the list more than once, clear the list with
special_list_clear
.
ModPerl::Global
provides the following methods:
special_list_call
Call the special list
$ok = special_list_call($key => $package);
$key
( string )
'END'
is
supported.
$package
( string )
$ok
( boolean )
$key
is known, false otherwise.
special_list_clear
Clear the special list
$ok = special_list_clear($key => $package);
$key
( string )
'END'
is
supported.
$package
( string )
$ok
( boolean )
$key
is known, false otherwise.
special_list_register
Register the special list
$ok = special_list_call($key => $package);
$key
( string )
'END'
is
supported.
$package
( string )
$ok
( boolean )
$key
is known, false otherwise.
Notice that you need to register the package before it is loaded. If
you register it after, Perl has already compiled the END
blocks and
there are no longer under your control.
mod_perl 2.0 and its core modules are copyrighted under The Apache Software License, Version 2.0.