为什么我的 Perl CGI 程序显示程序代码,而不是输出?
代码 - TEST.CGI
#!/usr/bin/perl
use strict;
use warnings;
use CGI::FastTemplate;
my $tpl = new CGI::FastTemplate("/some/directory");
$tpl->no_strict();
$tpl->define(main => "test.htm");
$tpl->assign(TEST_CONTENT=> "Test");
$tpl->parse(CONTENT => "main");
$tpl->print('CONTENT');
模板文件
< html>
< head>
< title>TEST< /title>
< /head>
< body>
$TEST_CONTENT
< /body>
< /html>
说明
为什么我在浏览器中看不到所需的输出?当我导航到 test.cgi 文件时,我看到的只是实际代码而不是模板。我做错了什么?
CODE - TEST.CGI
#!/usr/bin/perl
use strict;
use warnings;
use CGI::FastTemplate;
my $tpl = new CGI::FastTemplate("/some/directory");
$tpl->no_strict();
$tpl->define(main => "test.htm");
$tpl->assign(TEST_CONTENT=> "Test");
$tpl->parse(CONTENT => "main");
$tpl->print('CONTENT');
TEMPLATE FILE
< html>
< head>
< title>TEST< /title>
< /head>
< body>
$TEST_CONTENT
< /body>
< /html>
EXPLAIN
Why can't I see the desired output in a browser? When I navigate to the test.cgi file all I see is the actual code and not the template. What am I doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您看到的是代码而不是程序的输出,因为您尚未配置网络服务器来执行该程序,因此它默认以文本/纯文本形式提供文件。
如何配置它取决于您使用的服务器软件。例如,请参阅 Apache 2.2 CGI 文档。
其次,舍邦线缺失。该程序应以以下内容开头:
其中
/usr/bin/perl
是您要使用的 Perl 可执行文件的路径。此外,并且不会造成问题:
use strict;
和use warnings;
。您使用的任何 Perl 程序中都应该有样板文件,因为它们会捕获许多问题。You are seeing code instead of the output of the program because you haven't configured you webserver to execute the program, so it is defaulting to serving the file as text/plain.
How you configure it depends on the server software you use. For example, see the Apache 2.2 CGI docs.
Second, the shebang line is missing. The program should start with:
Where
/usr/bin/perl
is the path to the Perl executable you wish to use.Additionally, and not contributing to the problem:
use strict;
anduse warnings;
. There should be boilerplate in any Perl program you are using as they catch many problems.