0

我都使用过 Perl CGI 和 Catalyst。我知道 Catalyst 比 Perl CGI 更好。我知道不同之处在于 Catalyst 具有更好的 URL 处理能力。但是还有什么其他区别呢?

此外,如果使用 Catalyst 或 CGI Perl,应用程序的性能会如何变化,为什么?如果您遇到过,请提供一些真实世界的示例。

4

2 回答 2

3

将 CGI.pm 与 Catalyst 进行比较就像将小型笔记本电脑与完整的办公环境进行比较。笔记本电脑很棒,但家庭办公室,有桌子、椅子、打印机,可能还有传真机、扫描仪、订书机、文件柜、笔、纸等等。

CGI.pm 用于解析查询字符串、表单数据、处理 cookie、一些基本的 HTTP 处理,也许是一些快速而肮脏的 HTML 生成,但仅此而已。这就是你所得到的一切,这没关系,因为这就是它的设计目的。事实上,包含 HTML 生成函数可能是一个错误。

Catalyst 是一个完整的 Web 框架,旨在使组织和创建网站变得容易。这里是模型所在的地方,这里是控制器所在的地方,这里是视图所在的地方......而且,哦,是的,处理 Web 请求、cookie、HTTP、会话、身份验证、路由调度,它有一个内置的开发服务器,以及很快。它远远超出了 CGI,因此比较它们没有意义。

如果 Catalyst 对您来说似乎有点过头了,我强烈建议您查看DancerMojolicious

于 2012-04-24T08:43:03.153 回答
1

好吧,我假设您在谈论 CGI::Application 而不是 CGI.pm 与 Catalyst。

当然,您的应用程序性能将取决于您对框架所做的工作以及是否可以使用缓存(在这种情况下它们都非常快)。

查看http://www.perlmonks.org/?node_id=645497了解更多信息。不要让日期吓到你,事情并没有太大变化。

CGI 很简单,它涵盖了基础知识,您可以很快地学习它。

Catalyst 努力成为您忠实的助手,并希望您忠诚并深入了解它。它可以自动化很多事情,同时仍然为您提供灵活性。它确实使用了很多库,但在我看来,它似乎并没有减慢它的速度。不过,您的硬件和要求与我的有所不同。

对于快速项目,我使用 CGI,对于更复杂的系统,我使用 Catalyst。这真的取决于你的项目。

于 2012-04-24T06:25:12.383 回答