Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
两次打印CGI头对于不同的CGI和Apache版本表现不同_Apache_Perl_Cgi - Fatal编程技术网

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

两次打印CGI头对于不同的CGI和Apache版本表现不同,apache,perl,cgi,Apache,Perl,Cgi,我正在两个不同的环境中运行下面的代码,版本和输出如下: 环境1(Perl:5.14.1,CGI模块:3.52,Apache:2.4.12)输出: 环境2(Perl:5.6.1,CGI模块:2.752,Apache:1.1)输出: 我已经看到CGI头函数在3.52中从2.752经历了一些变化。有谁能帮我了解一下产量的差异吗 打印两次头的原因是CGI版本还是Apache版本 use strict; use warnings; use CGI; use CGI::Carp qw(fatalsToBro

我正在两个不同的环境中运行下面的代码,版本和输出如下:

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

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

我已经看到CGI头函数在3.52中从2.752经历了一些变化。有谁能帮我了解一下产量的差异吗 打印两次头的原因是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();

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

use CGI qw( -unique_headers );
如果这导致旧版本中出现错误,则可以改用以下方法:

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

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

use CGI qw( -unique_headers );
如果这导致旧版本中出现错误,则可以改用以下方法:

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

你为什么一开始就要打印两次标题?我不想打印两次。这只是我的实时代码的一个小演示,在早期版本(Env-1)中,头被错误地打印了两次。我想解决它。为了做到这一点,我注意到了这种行为。我假设您已经从浏览器复制了渲染输出,因为其中没有HTML。在命令行上运行脚本,并将输出编辑到问题中。首先,为什么要打印两次标题?我不想打印两次。这只是我的实时代码的一个小演示,在早期版本(Env-1)中,头被错误地打印了两次。我想解决它。为了做到这一点,我注意到了这种行为。我假设您已经从浏览器复制了渲染输出,因为其中没有HTML。在命令行上运行脚本,并将输出编辑到问题中。