有几种方法,一个cgi脚本可以输出html。其中一个是将 html 代码打印为字符串或此处的文档,另一个是创建一个 cgi 对象并使用 cgi.pm 方法。
我现在的问题是,它们之间有什么区别吗?有没有办法将它们结合起来?例如,我需要使用 cgi.pm 方法实现 recaptcha,并想在我的打印语句之间添加 cgi.pm 代码块?这是可能的还是我错过了什么?
对我来说,cgi.pm 似乎只支持创建基本的 html 元素,但不支持创建那些经常用于复杂网页设计的元素。
use
实际上,您可以通过在语句中给出标签的名称来使 CGI,pm 打印出您想要的任何标签(甚至是它不支持的标签或您自己编造的标签) 。
#!/usr/bin/perl
use strict;
use warnings;
use 5.010;
# Import standard functions, and add a madeuptag() function.
use CGI qw[:standard madeuptag];
say madeuptag("here it is"); # <madeuptag>here it is</madeuptag>
但是,使用 HTML 生成函数是一个非常糟糕的主意。将原始 HTML 放入代码中的字符串是一个更糟糕的主意。建议您使用某种模板系统会更好 - 我会推荐Template Toolkit。
哦,为了实现 reCAPTCHA,我推荐Captcha::reCAPTCHA。
当您想用换行符 \n 字符等逐行、逐个打印出某些关键标签时,CGI.pm 会很有帮助。
您可以使用 HTML::Template 之类的东西:http: //metacpan.org/pod/HTML ::Template
这对于包含许多您想要替换的变量的整个 html 文件来说是很好的。
有几个选项,但是对于像 recaptcha 和替换一些变量,我建议一个简单的 qq print 语句:
print qq~<p><span><a href="~; print $link; $count++;
print qq|">Title</a>
</span>
</p>\n|;
希望这可以帮助