如何打开文件打印线?

时间:2014-02-04 02:10:53

标签: perl

这是我的脚本:它应该是一个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的第一天。仅供参考文件,其读取的是脚本本身。我认为这不重要,因为它应该读它。它被解释了。

2 个答案:

答案 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;