为什么我的 Perl CGI 程序显示程序代码,而不是输出?

发布于 2024-10-16 16:18:51 字数 633 浏览 0 评论 0原文

代码 - 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

昨迟人 2024-10-23 16:18:51

您看到的是代码而不是程序的输出,因为您尚未配置网络服务器来执行该程序,因此它默认以文本/纯文本形式提供文件。

如何配置它取决于您使用的服务器软件。例如,请参阅 Apache 2.2 CGI 文档

其次,舍邦线缺失。该程序应以以下内容开头:

#!/usr/bin/perl

其中 /usr/bin/perl 是您要使用的 Perl 可执行文件的路径。

此外,并且不会造成问题:

  • 您缺少 use strict;use warnings;。您使用的任何 Perl 程序中都应该有样板文件,因为它们会捕获许多问题。
  • 您的 HTML 文档没有 Doctype,因此它会触发怪异模式。合适的 Doctype 应该是您编写的任何 HTML 文档中的样板。

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:

#!/usr/bin/perl

Where /usr/bin/perl is the path to the Perl executable you wish to use.

Additionally, and not contributing to the problem:

  • You are missing use strict; and use warnings;. There should be boilerplate in any Perl program you are using as they catch many problems.
  • Your HTML document has no Doctype, so it triggers quirks mode. A suitable Doctype should be boilderplate in any HTML document you write.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文