如果使用 ModPerl::Registry 运行,是否可以在 mod_perl 下运行的 Web 应用程序中进行检测? ?
我想编写在 ModPerl::Registry(或类似处理程序)下运行的脚本,但也可以作为 mod_perl 响应处理程序运行。
最佳答案
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
value 是一个完全限定的名称。ModPerl::Registry 将整个程序包装在一个名为
handler
的子文件中。在上述人工包中,因此从您的主程序中,使用类似于my $name = (caller 0)[3];
if ($name =~ /^ModPerl::ROOT::/) {
# run using ModPerl::Registry
...
}
关于perl - 如何使用 ModPerl::Registry(mod_perl 处理程序)检测 Perl 中的 Web 脚本是否运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3221053/