CGI.pm html输出方法与简单的打印语句

时间:2013-09-11 00:02:39

标签: html perl printing cgi output

有几种方法,一个cgi脚本可以输出html。其中一个是将html代码打印为字符串或此处为文档,另一个是使用cgi.pm方法创建cgi对象。

我现在的问题是,他们之间有什么区别吗?有没有办法将两者结合起来?例如,我需要使用cgi.pm方法实现recaptcha,并希望在我的print语句之间添加cgi.pm代码块?这可能还是我错过了什么?

对我而言,似乎cgi.pm仅支持创建基本的html元素,但不支持创建那些经常用于复杂网页设计的元素。

2 个答案:

答案 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)

当您想要逐行打印某些关键标签,按内容输入内容等时,使用换行符\ 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|;

希望这有帮助