我被要求开发一个用Perl编写的脚本的Web前端。我不知道从哪里开始。网页如何与命令行脚本交互?
编辑:经过两周的研究,我完成了项目。我正在寻找的基本答案是:使用html开发网页,使用cgi与perl脚本进行通信,并重建脚本以使用网页。感谢大家的帮助,这有点帮助。答案 0 :(得分:3)
这有两个方面。
一般来说,您应该使用Plack/PGSI。它充当中间件层,允许您以各种方式运行Perl Web应用程序(我通常使用FastCGI,其他选项包括mod_perl和CGI)。
您可以使用Dancer或Catalyst(在引擎盖下使用Plack)这样的框架,但它们可能有些过分(取决于脚本的功能)。
如果你需要非常基础,你可以使用没有Plack的CGI(CGI module使这很容易)。 CGI效率不高,但配置非常简单。除非您经常调用脚本或脚本具有较高的启动时间,否则您不会注意到低效率。
快速而肮脏的方式是您的Web应用程序生成一个shell并在其中运行它。您可以使用backticks, system or exec,或者,如果您想要更多控制权,请使用IPC::Run。
强大的方法是将脚本的业务逻辑分解为a module并重写命令行程序以解析参数,然后从模块中获取相应的函数。然后,您为Web应用程序执行相同的操作(区别在于您如何呈现输入和输出)。
答案 1 :(得分:2)
在这里查看my example code。
我正在使用HTTP和LWP Perl模块与this web app进行互动。
它发布了一个表单。
基本上,这个脚本正在做的是,它正在遍历一个Qt翻译文件列表,并将它POST到这个在线网络应用程序,该应用程序正在使用Bing Translation API进行翻译。然后脚本返回已翻译的文件并将其保存到硬盘。在POST表单中,它还指定了源语言和目标语言是什么。因此,这是在PC上运行的脚本以及与Internet上的Web应用程序交互的示例,包括发送数据和文件并将其接收回来。
这是关于这个主题的好book chapter。
将modperl与Apache一起使用。此wikipedia page也有一些信息。
另一种方法是使用Perl进行CGI脚本编写。这是tutorial,wikipedia page for this也很有用。如果您不确定什么是CGI,read this或this。
另一种方法是使用Perl Web框架,如Dancer,Mojolicious和Catalyst。