我应该使用面向功能或面向对象的CGI接口吗?

时间:2010-09-02 10:36:29

标签: perl cgi

我最近一直在学习CGI模块,而我正在使用的书显示有两种方法可以使用CGI,面向函数或面向对象。他们说面向对象的好处只是能够创建两个CGI对象。首先是真的,还有其他好处,其次是使用两个CGI对象的例子吗?

3 个答案:

答案 0 :(得分:3)

我想我找到了问题的答案

http://perldoc.perl.org/CGI.html#PROGRAMMING-STYLE

通过faq读取,给出CGI对象多次使用的示例是我可以存储CGI并加载以前的CGI对象,这非常有用。

答案 1 :(得分:3)

当我需要组合一个非常简单的CGI脚本时,我使用CGI模块的OO接口。

我使用OOP接口,因为标准的命令式界面导入了大量可能与我自己的符号冲突的符号。我不喜欢这个,所以我总是阻止符号输入。我没有use CGI;。相反,我use CGI ();

我还限制我使用生成标头和解析参数。我总是以HTML或更好的方式生成HTML,使用像TemplateToolkit这样的模板模块。

我严格避免使用CGI的HTML生成功能。为什么呢?

  • 我(和许多其他人一起)已经知道HTML,我认为学习CGI的伪html界面没有任何好处。
  • 当脚本成长并需要在其他环境中使用时,提取HTML块或模板并重用它们会更容易。

不要将我所写的内容解释为对CGI.pm的全面谴责。 CGI.pm有很多值得关注的地方。它获得内容类型生成权。它使参数解析变得微不足道。这是一个核心模块。它使命令行调试和测试变得容易。

答案 2 :(得分:1)

除了你引用的优点之外,我还要指出,使用CGI.pm的OOP比使用功能版本更清晰(至少对我而言)和管理。

我还怀疑这种情况比较常见,所以那些需要维护你的代码的人(包括你从现在起六个月后)会发现它更容易维护。