如何使用cgi.pm获得正确的html标头?

时间:2013-09-24 06:37:34

标签: javascript perl cgi

我对CGI.pm语法并不熟悉。

我尝试创建html_header,但我无法让它工作。 我需要同时拥有http_equiv和javascript。没有-script部分,标题工作正常。我在这里做错了什么?

print $cgi->start_html( 

    -head => meta({
        -http_equiv => "Refresh",
        -content =>"$viive;URL=http://192.168.1.42/saldo/index.cgi?varasto=$varasto"
    }),

    -title => 'Varasto '.$varasto, 
    -style => { -src => 'infotaulu.css' }

    -script => {
    -language => 'javascript',
    -src => '/sorttable.js'

);

1 个答案:

答案 0 :(得分:3)

您的问题是您错过了-style参数末尾的逗号。使用这个:

print $cgi->start_html(

    -head => $cgi->meta({
        -http_equiv => "Refresh",
        -content =>"$viive;URL=http://192.168.1.42/saldo/index.cgi?varasto=$varasto"
    }),

    -title => 'Varasto '.$varasto,
    -style => { -src => 'infotaulu.css' },

    -script => {
    -language => 'javascript',
    -src => '/sorttable.js'
    }
);

给我这个输出:

<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
<head>
<title>Varasto varasto</title>
<meta http-equiv="Refresh" content="viive;URL=http://192.168.1.42/saldo/index.cgi?varasto=varasto" />
<link rel="stylesheet" type="text/css" href="infotaulu.css" />
<script src="/sorttable.js" type="text/javascript"></script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>

我认为这就是你想要的。

然而我真的认为你应该重新考虑你的方法。在CGI.pm中使用HTML生成函数是一个糟糕的主意。你最终会得到一个可怕的无法维护的代码。请考虑改为使用templating system