我在注意CGI.pm模块的时候注意到CGI::Simple。我应该使用CGI :: Simple吗?它对CGI.pm提供了什么,我用了八年?我看到CGI :: Simple不做HTML生成;我该怎么用呢?并且它会与CGI :: Simple集成,允许我像CGI.pm一样使表单值保持不变吗?
答案 0 :(得分:8)
我认为从文档可以归结为这一行:“在实际测试中,这个模块的加载和运行速度是CGI.pm的两倍,具体取决于精确的任务。”
如果您不关心CGI程序的速度,我认为忽略此模块是安全的。如果您关心速度,我建议您先考虑CGI::Fast。
答案 1 :(得分:5)
我很少使用CGI.pm的HTML生成工具。为此,我更喜欢HTML::Template,通常与CGI::Application一起使用。 CGI :: Application可以使用call to its constructor中指定的任何$ cgi对象。
我认为CGI仍然有它的位置。我喜欢CGI::Simple,因为它提供了一个干净的OO界面。
答案 2 :(得分:2)
我维护CGI.pm并帮助修补了CGI :: Simple。我已经深入研究了这两个代码,并对它们进行了基准测试。我认为切换到CGI :: Simple有很小的好处。你会发现这个过程中有一些令人头疼的问题,比如处理需要更改的文件上传的语法不兼容。
我同意其他一些人的观点,如果你要前进,你应该超越其中任何一个。我建议寻找原生适用于PSGI的东西。
答案 3 :(得分:1)
我有点惊讶你还在使用CGI。考虑一个更成熟的框架,如Catalyst / TT / DBIx堆栈。
答案 4 :(得分:1)
您可以尝试使用CGI :: Simple来做新事物,但是否则让睡觉的狗撒谎。如果您的旧程序正在运行,请不要管它们。 :)
答案 5 :(得分:1)
CGI.pm有一个很好的安装基础,大多数perl安装都有它,重构和略微最小化的CGI :: Simple不会真的为我做。我必须有一个观点,我最终需要CGI.pm来维护它们。
我发现CGI的HTML生成器可以处理转义,编码和符合实体的HTML作为一个很好的工具。
答案 6 :(得分:0)
当您准备好迁移时,请停止编写脏旧的基于CGI的脚本。请使用现代而干净的网络引擎,例如Dancer或Mojolicious。