0

我被要求为一个用 Perl 编写的脚本开发一个 Web 前端。我不知道从哪里开始。网页如何与命令行脚本交互?

编辑:所以经过两周的研究,我完成了这个项目。我一直在寻找的基本答案是:使用 html 开发网页,使用 cgi 与 perl 脚本通信并重建脚本以使用网页。不过还是感谢大家的帮助,还是有点帮助的。

4

2 回答 2

3

要让您的 Perl 脚本通过 Internet 与 Web 应用程序交互:

在此处查看我的示例代码

我正在使用HTTPLWP Perl 模块与此 Web 应用程序进行交互。

它正在发布一个表格。

基本上,这个脚本正在做什么,它是在遍历 Qt 翻译文件列表并将其发布到这个在线 Web 应用程序,该应用程序正在使用 Bing Translation API 进行翻译。然后脚本获取翻译后的文件并将其保存到硬盘。在 POST 表单中,它还指定源语言和目标语言是什么。因此,这是在您的 PC 上运行并与 Internet 上的 Web 应用程序交互的脚本示例,包括发送数据和文件并接收它们。

这是关于该主题的好书章节。

使用 Perl 开发 Web 应用程序:

modperl与 Apache 一起使用。维基百科页面也有一些信息。

另一种方法是使用 Perl 编写CGI脚本。这是一个教程,这方面的维基百科页面也很有用。如果您不确定什么是 CGI,请阅读 thisthis

还有一种方法是使用 Perl Web 框架,例如DancerMojoliciousCatalyst

于 2013-06-20T15:28:45.357 回答
3

这有两个方面。

编写 Web 前端

一般来说,您应该为此使用Plack/PGSI。它充当中间件层,允许您以多种方式运行 Perl Web 应用程序(我通常选择 FastCGI,其他选项包括 mod_perl 和 CGI​​)。

您可以使用诸如DancerCatalyst之类的框架(它们在底层使用 Plack),但它们可能有点矫枉过正(取决于脚本的作用)。

如果您的需求非常基本,您可以在没有 Plack 的情况下使用 CGI(CGI 模块使这变得非常容易)。CGI 效率不高,但很容易配置。除非您经常调用脚本或脚本的启动时间很长,否则您不会注意到效率低下。

访问现有脚本

快速而肮脏的方法是让您的 Web 应用程序生成一个 shell 并在其中运行它。您可以使用反引号、system 或 exec,或者,如果您想要更多控制,可以使用IPC::Run

稳健的方法是将脚本的业务逻辑分解为一个模块,并重写命令行程序来解析参数,然后从模块中引入适当的函数。然后,您对 Web 应用程序执行相同的操作(不同之处在于您呈现输入和输出的方式)。

于 2013-06-20T15:40:25.923 回答