如何在 HTML 页面中调用 Perl 脚本?

问题描述 投票:0回答:4

我有一个 HTML 文件,如何在 HTML 代码中使用 Perl 脚本(日期/小时)? 我的目标:在 HTML 中显示日期/小时 观察:单独两个脚本都可以。

示例: HTML 文件:

<html>
<body>
code or foo.pl script
</body>
</html>

Perl 脚本(foo.pl):

#!/usr/local/bin/perl
use CGI qw/:push -nph/;
$| = 1;
print multipart_init(-boundary=>'----here we go!');
for (0 .. 4) {
    print multipart_start(-type=>'text/plain'),
          "The current time is ",scalar(localtime),"\n";
    if ($_ < 4) {
            print multipart_end;
    } else {
            print multipart_final;
    }
    sleep 1;
}
html perl
4个回答
3
投票

Perl是一种服务器端语言,所以它必须运行在服务器上。 HTML代码显示在浏览器中,由服务器生成。因此,您必须在服务器上运行 perl 脚本来生成日期/小时,并将其嵌入到您提供给浏览器的 HTML 代码中。

这里是有关如何执行此操作的教程。


3
投票

听起来您想要 Ajax。您的 HTML 页面使用 JavaScript 来调用您的 Perl 程序。您的 JavaScript 获取响应并替换页面中您想要数据所在的部分。或者,您可以完全跳过 Perl 位,而只在 JavaScript 中完成这一切。


1
投票

您可以通过 CGI 脚本生成整个 HTML 页面(根据 Chetan 的答案) - 或者作为替代方案,您可以使用模板模块之一(EmbPerl、Mason、HTML::Template 或许多其他模块)。

模板解决方案更适合实际软件开发,其中 HTML 和 Perl 逻辑的分离更为重要。例如。对于 EmbPerl,您的代码将如下所示:

<html>
<body>
[- my $date_hour= my_sub_printing_date_and_hour(); # Logic to generate -]
[+ $date_hour # print into HTML - could be combined with last statement +]
</body>
</html>

0
投票

如果您想要的只是时间,只需使用 SSI:

<!--#config timefmt="%d %b %Y %H:%M" -->
<p>The current time is <!--#echo var="DATE_LOCAL" --></p>

您需要告诉服务器在您的 .htaccess 中解析它:

AddType text/html .shtml
AddHandler  server-parsed .shtml

或者,正如 brian 建议的那样,只需使用 Javascript。

© www.soinside.com 2019 - 2024. All rights reserved.