4

如果使用ModPerl::Registry运行,是否可以检测在 mod_perl 下运行的 Web 应用程序?

我想编写可以在 ModPerl::Registry (或类似的处理程序)下运行的脚本,但也可以用作 mod_perl 响应处理程序。

4

1 回答 1

4

ModPerl::Registry 进行了精心设计,以将您的代码与系统中的所有其他内容隔离开来,其中一部分是将其编译到ModPerl::ROOT.

当在列表上下文中使用指定要返回的帧数的参数调用时,caller返回

#  0         1          2      3            4
($package, $filename, $line, $subroutine, $hasargs,
#  5          6          7            8       9         10
$wantarray, $evaltext, $is_require, $hints, $bitmask, $hinthash)
 = caller($i); 

其中$subroutine值是一个完全限定的名称。

ModPerl::Registry 将您的整个程序包装handler在上述人工包中命名的子程序中,因此在您的主程序中,使用类似于

my $name = (caller 0)[3];
if ($name =~ /^ModPerl::ROOT::/) {
  # run using ModPerl::Registry
  ...
}
于 2010-07-11T02:40:22.813 回答