📄 perlrun.pm
字号:
# Copyright 2001-2005 The Apache Software Foundation## Licensed under the Apache License, Version 2.0 (the "License");# you may not use this file except in compliance with the License.# You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the License.#package ModPerl::PerlRun;use strict;use warnings FATAL => 'all';# we try to develop so we reload ourselves without die'ing on the warningno warnings qw(redefine); # XXX, this should go away in production!our $VERSION = '1.99';use base qw(ModPerl::RegistryCooker);sub handler : method { my $class = (@_ >= 2) ? shift : __PACKAGE__; my $r = shift; return $class->new($r)->default_handler();}my $parent = 'ModPerl::RegistryCooker';# the following code:# - specifies package's behavior different from default of $parent class# - speeds things up by shortcutting @ISA search, so even if the# default is used we still use the aliasmy %aliases = ( new => 'new', init => 'init', default_handler => 'default_handler', run => 'run', can_compile => 'can_compile', make_namespace => 'make_namespace', namespace_root => 'namespace_root', namespace_from => 'namespace_from_filename', is_cached => 'FALSE', should_compile => 'TRUE', flush_namespace => 'flush_namespace_normal', cache_table => 'cache_table_common', cache_it => 'NOP', read_script => 'read_script', shebang_to_perl => 'shebang_to_perl', get_script_name => 'get_script_name', chdir_file => 'NOP', get_mark_line => 'get_mark_line', compile => 'compile', error_check => 'error_check', should_reset_inc_hash => 'TRUE', strip_end_data_segment => 'strip_end_data_segment', convert_script_to_compiled_handler => 'convert_script_to_compiled_handler',);# in this module, all the methods are inherited from the same parent# class, so we fixup aliases instead of using the source package in# first place.$aliases{$_} = $parent . "::" . $aliases{$_} for keys %aliases;__PACKAGE__->install_aliases(\%aliases);1;__END__=head1 NAMEModPerl::PerlRun - Run unaltered CGI scripts under mod_perl=head1 Synopsis # httpd.conf PerlModule ModPerl::PerlRun Alias /perl-run/ /home/httpd/perl/ <Location /perl-run> SetHandler perl-script PerlResponseHandler ModPerl::PerlRun PerlOptions +ParseHeaders Options +ExecCGI </Location>=head1 DescriptionMETA: document that for now we don't chdir() into the script's dir,because it affects the whole process underthreads. C<L<ModPerl::PerlRunPrefork|docs::2.0::api::ModPerl::PerlRunPrefork>>should be used by those who run only under prefork MPM.=head1 Special Blocks=head2 C<BEGIN> BlocksWhen running under the C<ModPerl::PerlRun> handler C<BEGIN> blocksbehave as follows:=over=item *C<BEGIN> blocks defined in scripts running under theC<ModPerl::PerlRun> handler are executed on each and every request.=item *C<BEGIN> blocks defined in modules loaded from scripts running underC<ModPerl::PerlRun> (and which weren't already loaded prior to therequest) are executed on each and every request only if those modulesdeclare no package. If a package is declared C<BEGIN> blocks will berun only the first time each module is loaded, since those modulesdon't get reloaded on subsequent requests.=backSee also L<C<BEGIN> blocks in mod_perlhandlers|docs::2.0::user::coding::coding/C_BEGIN__Blocks>.=head2 C<CHECK> and C<INIT> BlocksSame as normal L<mod_perlhandlers|docs::2.0::user::coding::coding/C_CHECK__and_C_INIT__Blocks>.=head2 C<END> BlocksSame asC<L<ModPerl::Registry|docs::2.0::api::ModPerl::Registry/C_BEGIN__Blocks>>.=head1 AuthorsDoug MacEachernStas Bekman=head1 See AlsoC<L<ModPerl::RegistryCooker|docs::2.0::api::ModPerl::RegistryCooker>>and C<L<ModPerl::Registry|docs::2.0::api::ModPerl::Registry>>.=cut
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -