有几种方法,一个cgi脚本可以输出html。其中一个是将html代码打印为字符串或此处为文档,另一个是使用cgi.pm方法创建cgi对象。
我现在的问题是,他们之间有什么区别吗?有没有办法将两者结合起来?例如,我需要使用cgi.pm方法实现recaptcha,并希望在我的print语句之间添加cgi.pm代码块?这可能还是我错过了什么?
对我而言,似乎cgi.pm仅支持创建基本的html元素,但不支持创建那些经常用于复杂网页设计的元素。
答案 0 :(得分:2)
您实际上可以通过在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。
答案 1 :(得分:-1)
您可以使用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|;
希望这有帮助