Perl CGI 新手求助

Perl CGI 新手求助

大家好啊~

        刚开始学Perl CGI,跟着教材学的时候发现报错了~但是不知道错在哪里啊~请大大的指点一下的


我照教材上面创建了2个脚本,并在test.pl中调用了htmlend.pl脚本,可是网页显示有错误啊~不知道哪里写错了啊~

test.pl

require "htmlend.pl";
print "Content-type:text/html","\n\n";
print "<HTML>","\n";
print "<HEAD>";
print "<TITLE>Perl test!</TITLE>","\n";
print "</HEAD>","\n";
print "<BODY>","\n";
print "<H1>Hello,world!</H1>","\n";
&HTML_END;


htmlend.pl
sub HTML_END
{
print "\n","</BODY>","\n";
print "</HTML>","\n";
}




CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:

htmlend.pl did not return a true value at C:\Inetpub\wwwroot\sumin\test.pl line 1.





若单独运行 test.pl

print "Content-type:text/html","\n\n";
print "<HTML>","\n";
print "<HEAD>";
print "<TITLE>Perl test!</TITLE>","\n";
print "</HEAD>","\n";
print "<BODY>","\n";
print "<H1>Hello,world!</H1>","\n";
print "</BODY>","\n";
print "</HTML>","\n";

网页打开但是OK的~



另外~请大大们推荐几本学习Perl 的好的教材啊~ 谢谢了
好像是我使用require函数的时候有问题啊,我新建了2个文件:

test2.pl

sub show{
print "haha";
}


test.pl

require "test2.pl";
show();

运行 test.pl的时候也报这个错:

test2.pl did not return a true value at test.pl line 1.


这个到底是什么原因啊?
test2.pl末尾加一行:
“1;”

test2.pl

#!/usr/bin/perl
sub show {
  print "hello\n";
}

1;
所有的PERL文件都要在文件头加上PERL的安装路径。

必须要加,而且要加正确。
恩~
谢谢大家
加了之后已经可以正确运行了~  :)


QUOTE:
原帖由 lonelyair 于 2008-1-14 16:39 发表
所有的PERL文件都要在文件头加上PERL的安装路径。

必须要加,而且要加正确。

win 下就不一定了吧?
在win下写cgi的话,也是必须的。