如何在perl中创建倒计时cgi脚本?

时间:2012-07-18 00:29:49

标签: perl cgi

我正在尝试创建一个简单的cgi perl脚本,从10到0递减计数;但是我似乎无法让它发挥作用。它一直告诉我malformed header from script. Bad header=HTTP/1.1 200 OK。我是Perl和CGI脚本的新手,所以我确信它非常简单。

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

use CGI::Push qw(:standard);

my $startingCountDown = 10;

do_push(-next_page => \&refresh, -last_page=> \&lastPage, -delay => 1 );

sub refresh
{
        my ($cgi, $count) = @_;

        return undef if ($startingCountDown - $count < 0);

        my $num = $startingCountDown - $count;
        my $page = $cgi->start_html();
        $page .= $cgi->p("The count is $num").end_html();
        return $page;
}

sub lastPage
{
     my ($cgi, $count) = @_;
    return start_html()."Blast Off".end_html();
}

如果我从终端(在我的Macbook上)运行此命令,则会收到以下错误:WARNING: YOUR BROWSER DOESN'T SUPPORT THIS SERVER-PUSH TECHNOLOGY.。我已尝试在Safari和Chrome中运行此脚本,但似乎都不起作用。在这种情况下,我如何编写一个从10到1倒计时的功能脚本,每秒更改一次数字?感谢。

1 个答案:

答案 0 :(得分:4)

&#34;服务器推送&#34; CGI::Push正在使用的机制(具体而言,multipart/x-mixed-replace)未得到广泛支持。您需要采用不同的方式来实现这一点;可能最好的方法是在Javascript中进行倒计时,而不是在服务器端。