我在学校的Web脚本课上,正在完成我的第一个任务.我倾向于过度开展事情并深入研究我的课程,而不是课程所要求的.现在我正在研究CGI.pm来做我的HTTP请求,它说CGI.pm有两种编程风格:
>面向对象的风格
>以功能为导向的风格
除非我忽略了明确的答案,或者我的知识不足以从http://perldoc.perl.org/CGI.html提供的文档中辨别出自己的答案,我只是不知道使用这两种不同风格的利弊是什么.
有人说,使用这两种不同风格的利弊是什么?哪一个更常用?至于使用面向对象的样式,它说我当时只能使用一个CGI对象.这是为什么?
感谢你的帮助.你们都让学习计算机科学非常愉快,令人满意,并且对我有益. = d
解决方法
在幕后,尽管有各种风格,CGI.pm仍在做同样的事情.功能界面实际上使用了您看不到的秘密对象.
对于许多小规模的CGI项目,您可能永远不会一次需要多个CGI对象,因此功能界面很好.这可能是更常见的风格,但仅仅是因为大多数人为特定任务制作小脚本.如果你还有很多其他的东西,你可能不喜欢CGI.pm将一个长列表(并且很长)的函数名称导入到你的脚本中.某些函数名称可能与要导入的其他模块发生冲突.
但是,我始终使用面向对象的界面.我不必担心名称冲突,而且当你看到它的对象时,任何方法都显而易见.将对象作为参数传递给大型应用程序的其他部分等也很容易.
有些人可能会抱怨额外的打字,但这对我来说从来都不是编程的慢点.我已经做了很长一段时间的Perl,我不介意语法.但是,我只使用CGI来获取输入并可能发送输出.我不会搞乱任何HTML的东西.
当它一次讨论一个CGI.pm对象时,它指的是对输入的访问.例如,一旦你读过STDIN,另一个CGI.pm对象将无法读取它.你可以拥有尽可能多的对象.他们只是不会共享数据,第一个获取所有POST数据.
你实际上可以使用混合物.你可以导入一些东西,比如:html,但仍然使用OO接口来处理输入.