对于不同的CGI和Apache版本,打印CGI标题两次表现不同

时间:2016-04-13 14:48:14

标签: apache perl cgi

我在下面提到的版本和输出的两个不同环境中运行以下代码:

环境1(Perl:5.14.1,CGI模块:3.52,Apache:2.4.12)输出:

Content-Type: text/html; charset=ISO-8859-1 Hello Everybody .. !

环境2(Perl:5.6.1,CGI模块:2.752,Apache:1.1)输出:

Hello Everybody .. !

我已经看到CGI头函数在2.752中经历了3.52的一些变化。任何人都可以帮我理解输出的差异 用于打印标题两次是由于CGI版本还是Apache版本?

use strict;
use warnings;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
my $q = CGI->new;

print $q->header();
print $q->header();

print $q->start_html();

warn "This is test header issue script \n";
print "Hello Everybody .. !";
print $q->end_html();

1 个答案:

答案 0 :(得分:2)

添加以下内容将抑制较新版本中的重复标题:

use CGI qw( -unique_headers );

如果在旧版本中导致错误,则可以改为使用以下内容:

{
   no warnings qw( once );
   $CGI::HEADERS_ONCE = 1;
}