Perl脚本字面上打印http标头而不是理解它们

Hen*_*Cho 2 html perl

我无法想到谷歌这个问题有更好的关键词,所以如果这是重复的话我会道歉.

这是我的logout.pl脚本基本上删除cookie:

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

use CGI;

my $q = new CGI;

print $q->header('text/html');

my $cookie = $q->cookie(
  -name    => 'CGISESSID',
  -value   => '',
  -expires => '-1d'
);

print $q->header(-cookie=>$cookie);
print $q->redirect('welcome.pl');

exit;
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中运行此脚本时,它会打印以下内容:

Set-Cookie: CGISESSID=; path=/; expires=Mon, 17-Feb-2014 09:05:42 GMT Date: Tue, 18 Feb 2014 09:05:42 GMT Content-Type: text/html; charset=ISO-8859-1 Status: 302 Found Location: welcome.pl
Run Code Online (Sandbox Code Playgroud)

但是,我想要的是浏览器删除cookie并重定向到welcome.pl.

Dav*_*man 8

当你print $q->header打印所有标题时,包括表示标题结尾的空白行,在内容之后做任何事情.你只需要print $q->header一次,不多了.