这是我的脚本:它应该是一个hello world,如果你想重定向,显示你所在的最后一页,并在div中显示这个页面本身的源代码:
#!/usr/bin/perl
BEGIN {
$| = 1;
open(STDERR, ">&STDOUT") ;
#select(STDERR) ; $| = 1;
#select(STDOUT) ; $| = 1;
print "Content-type: text/html\n\n";
}
print <<EndHTML1
<html>
<head>
<title>HEEYYYYY YOOOUUUU GUUUUYYYYSSSS!</title>
</head>
<body>
<h1>Hello World!</h1>
<hr />
<p>You are accessing this page from $ENV{'HTTP_REFERER'}!</p>
<p>This page was written with perl and here is the source code:</p>
<div
style="background-color:#ABABAB;color:04FF00;margin:10px;border:5px;border-color:FF0000;width:100%;">
EndHTML1
if ( open(DATA, "< helloworld2.cgi")) { #it complains right here
while (<DATA>) {
print "<p>";
print "$_";
print "</p>\n";
} # and here
}
else
{
print "<p>Nope! Didn't work!</p>\n";
}
print <<EndHTML2
</div>
</body>
</html>
EndHTML2
看起来对我来说。但IDK这是我认真学习perl的第一天。仅供参考文件,其读取的是脚本本身。我认为这不重要,因为它应该读它。它被解释了。
答案 0 :(得分:1)
最好将open函数放在if块之外并删除if-else块。然后把Nope它没有工作消息在die函数中。 $!会告诉你开放功能的错误。
open(DATA, "< helloworld2.cgi") or die("Nope it didn't work : $!");
while (<DATA>) {
print "<p>";
print "$_";
print "</p>\n";
} # and here
答案 1 :(得分:1)
尝试在行上添加分号
print <<EndHTML1
所以它变成了
print <<EndHTML1;