我被要求为一个用Perl编写的脚本开发一个web前端。我不知道从哪里开始。网页如何与命令行脚本交互?
编辑:经过两周的研究,我完成了这个项目。我寻找的基本答案是:使用html开发网页,使用cgi与perl脚本通信,并重新构建脚本以处理网页。感谢大家的帮助,这对我有一定的帮助。
发布于 2013-06-20 23:28:45
要让Perl脚本通过internet与web应用程序交互,请执行以下操作:
看看这里的my example code。
我使用HTTP和LWP Perl模块与this web app进行交互。
它在邮寄一个表格。
基本上,这个脚本所做的是,它正在迭代Qt翻译文件的列表,并将其POSTing到这个在线web应用程序,该应用程序正在使用Bing translating API进行翻译。然后脚本获取翻译后的文件并将其保存到硬盘上。在POST表单中,它还指定了源语言和目标语言是什么。因此,这是一个运行在你的PC上的脚本示例,它与互联网上的web应用程序进行交互,包括发送数据和文件以及接收它们。
这里有一个关于这个主题的很好的book chapter。
要使用Perl开发web应用程序:
在Apache中使用modperl。这个的wikipedia page也有一些信息。
另一种方法是使用Perl编写CGI脚本。这是一个tutorial,这个wikipedia page for this也很有用。如果您不确定什么是CGI、read this或this。
另一种方式是使用Perl web框架,如Dancer、Mojolicious和Catalyst。
发布于 2013-06-20 23:40:26
这有两个方面。
编写web前端
一般来说,您应该使用Plack/PGSI来实现这一点。它充当中间件层,允许您以多种方式运行Perl web应用程序(我通常选择FastCGI,其他选项包括mod_perl和CGI)。
您可以使用诸如Dancer或Catalyst这样的框架(它们在幕后使用Plack ),但它们可能是过度杀伤力(取决于脚本的作用)。
如果你的需求是非常基本的,你可以使用CGI而不是Plack ( CGI module使得这很容易)。CGI的效率不是很高,但它很容易配置。除非您频繁调用脚本或脚本的启动时间较长,否则您不会注意到效率低下。
访问现有脚本
对于您的web应用程序来说,最快捷的方式就是生成一个shell并在其中运行它。您可以使用backticks, system or exec,或者,如果您想要更多的控制,可以使用IPC::Run。
最健壮的方法是将脚本的业务逻辑分解为a module,然后重写命令行程序以解析参数,然后涉及模块中的适当函数。然后,您可以对web应用程序执行相同的操作(不同之处在于如何呈现输入和输出)。
https://stackoverflow.com/questions/17217687
复制相似问题