在Perl中构建专业应用程序?

时间:2012-06-07 07:26:27

标签: perl user-interface desktop-application finance

我已经在我的日常工作中使用了一套工具,我想让它们看起来更“专业”,以便将它们卖给金融机构。

目前这些工具是用Perl编写的,并且是从DOS命令行执行的,它非常有效,但看起来不太吸引人。
所以,我想为它添加一个用户界面,但我真的不知道如何使用已知的语言:

  • Web上托管的Perl CGI接口不是一个选项,因为作为输入提供的信息非常敏感。
  • 将它作为包/可执行文件出售是理想的。
  • 我不太喜欢Perl / Tk界面。
  • 我可以用另一种语言重写应用程序,但我会优先重用Perl中的主要模块,因为它对正则表达式和列表/数组非常强大。

你建议我做什么? 谢谢, 洛里

4 个答案:

答案 0 :(得分:8)

如果你想要一个非基于Web的GUI,并且不喜欢Tk,那么还有Wx,它是wxWidgets GUI工具包的包装器。

但是,现在的Web应用程序可以非常容易地创建(使用现代框架)。拿一个Mojolicious应用程序,例如:Mojolicious不包含除Perl 5.12.x之外的依赖项,并提供自己的Web服务器(Hypnotoad)。您可以从生成“Lite :: App”开始,这是一个简单的独立单文件应用程序,然后在需要时将其扩展为更大的发行版。它甚至还带有工具,可以将您的应用程序转换为方便打包的分发版,可以像任何CPAN模块一样轻松安装。

这样就留下了安全问题。用户身份验证,IP白名单,仅限本地网络......如果您需要,有很多方法可以将Web应用程序“仅供内部使用”。

您可能只是将Web应用程序原型放在一起,一旦确定了客户对产品的兴趣,就可以投入大量时间将其编写为Windows GUI应用程序。

答案 1 :(得分:3)

继续DavidO的回答,因为Perl的当前网络微框架(我更喜欢Dancer超过他对Mojolicious的建议,但两者都很好并且大致相当)包含他们自己的捆绑式网络迷你服务器,他们也允许使应用程序可以轻松地在本地计算机上运行。

由于这些迷你服务器默认默认为非标准端口(通常为3000或5000),您可以轻松地将它们设置为不同的端口,因此可以相对轻松地通过防火墙隔离它们,确保没有人可以连接到它们远程。当然,您还可以在应用程序中包含和IP地址检查,并拒绝任何不是来自localhost的请求。

答案 2 :(得分:2)

我的猜测是目标系统将是Windows。使用RAD(快速应用程序开发)平台开发GUI。这种平台的示例是Delphi或带有C#或VB的.NET。要捆绑Perl部分,请考虑使用名为perl2exe的工具。

听起来您的脚本不需要Web服务器。另外,考虑安装麻烦。只是猜测,因为你没有提供有关你的脚本正在做什么的大量信息。

答案 3 :(得分:0)

我正在使用Cava packager部署我的Perl编写的工具。您甚至可以通过鼠标单击生成安装程序可执行文件。它适用于Windows上的strawberry PerlwxPerl