perl避免使用“HTML生成函数”

时间:2017-11-17 18:17:23

标签: perl

避免使用“HTML生成功能”对我不起作用 如果我从我的localhost开始使用perlscript

#!/usr/bin/perl

print "Content-type:text/html\r\n\r\n";
print '<html>';
print '<head>';
print '<title>Hello Perl</title>';
print '</head>';
print '<body>';
print '<h2>Hello perl</h2>';
print '</body>';
print '</html>';

我的浏览器按预期打印出来:

“你好perl”

但perldoc建议:“不再使用HTML生成函数”。
所以我尝试了面向对象的cgitutorial-script(perl,v5.10.0)。

#!/usr/bin/perl -w
use CGI; 
$q = new CGI; 
print $q->header,
$q->start_html('hello world'), 
$q->h1('hello world'), 
$q->end_html; 

浏览器显示

“内部服务器错误”

如果我使用

在终端上加载上述脚本
$perl mycgi.pl

显示预期结果

Content-Type: text/html; charset=ISO-8859-1

<!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>hello world</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<h1>hello world</h1>
</body>
</html>

我错过了什么?

1 个答案:

答案 0 :(得分:2)

来自你的评论:

  

(8)exec格式错误:'/ Library/WebServer/perling/mycgi.pl'的执行失败

这通常表明你的shebang线存在问题。 shebang是你节目的第一线吗?它是否指向真正存在的可执行文件?在行的末尾是否存在虚假的不可见字符(有时在Windows上编写程序并在Unix系统上运行时会出现这种情况。)