加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何判断Perl脚本是否在CGI上下文中执行?

发布时间:2020-12-15 21:38:58 所属栏目:大数据 来源:网络整理
导读:我有一个Perl脚本,它将从命令行和CGI运行.在Perl脚本中,我该如何判断它的运行方式? 解决方法 最好的选择是检查GATEWAY_INTERFACE环境变量.它将包含服务器正在使用的CGI协议的版本,这几乎总是CGI / 1.1. Tony Miller提到的HTTP_HOST变量(或任何HTTP_ *变量)
我有一个Perl脚本,它将从命令行和CGI运行.在Perl脚本中,我该如何判断它的运行方式?

解决方法

最好的选择是检查GATEWAY_INTERFACE环境变量.它将包含服务器正在使用的CGI协议的版本,这几乎总是CGI / 1.1. Tony Miller提到的HTTP_HOST变量(或任何HTTP_ *变量)仅在客户端提供时才设置.客户端很少但不是不可能省略未设置HTTP_HOST的Host头.
#!/usr/bin/perl
use strict;
use warnings;

use constant IS_CGI => exists $ENV{'GATEWAY_INTERFACE'};

如果我希望在某些时候在mod_perl下运行,我也会检查MOD_PERL环境变量,因为它将在首次编译脚本时设置.

#!/usr/bin/perl
use strict;
use warnings;

use constant IS_MOD_PERL => exists $ENV{'MOD_PERL'};
use constant IS_CGI      => IS_MOD_PERL || exists $ENV{'GATEWAY_INTERFACE'};

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读