使用两种不同的CGI.pm编程风格和Perl有什么优缺点?

Chr*_*ris 7 perl cgi

我在学校的Web脚本课上,正在完成我的第一个任务.我倾向于过度开展事情并深入研究我的课程,而不是课程所要求的.现在我正在研究CGI.pm来做我的HTTP请求,它说CGI.pm有两种编程风格:

  • 面向对象的风格
  • 一种功能导向的风格

除非我忽略了明确的答案,或者我没有足够的知识从我在http://perldoc.perl.org/CGI.html提供的文档中辨别出自己的答案.我只是不知道使用的利弊是什么这两种风格不同.

有了这个说,使用这两种不同风格的利弊是什么?哪一个更常用?至于使用面向对象的样式,它说我当时只能使用一个CGI对象.这是为什么?

感谢你的帮助.你们都为我学习计算机科学非常愉快,满意和有益.= d

bri*_*foy 17

在幕后,尽管有各种风格,CGI.pm也在做同样的事情.功能界面实际上使用了您看不到的秘密对象.

对于许多小规模的CGI项目,您可能永远不会一次需要多个CGI对象,因此功能界面很好.这可能是更常见的风格,但仅仅是因为大多数人为特定任务制作小脚本.如果你还有很多其他的东西,你可能不喜欢CGI.pm将一个长列表(并且很长)的函数名称导入到你的脚本中.某些函数名称可能与要导入的其他模块发生冲突.

但是,我始终使用面向对象的界面.我不必担心名称冲突,而且当你看到它的对象时,任何方法都显而易见.将对象作为参数传递给大型应用程序的其他部分等也很容易.

有些人可能会抱怨额外的打字,但这对我来说从来都不是编程的慢点.我已经做了很长一段时间的Perl,我不介意语法.但是,我只使用CGI来获取输入并可能发送输出.我不会搞乱任何HTML的东西.

当它一次讨论一个CGI.pm对象时,它指的是对输入的访问.例如,一旦你读过STDIN,另一个CGI.pm对象将无法读取它.您可以拥有任意数量的对象.他们只是不会共享数据,第一个获取所有POST数据.

你实际上可以使用混合物.你可以导入一些东西,比如:html,但仍然使用OO接口来处理输入.