编译的 Perl GUI 应用程序

Posted

技术标签:

【中文标题】编译的 Perl GUI 应用程序【英文标题】:Compiled Perl GUI Application 【发布时间】:2013-02-07 10:22:01 【问题描述】:

我正在寻找制作基于 GUI 的应用程序的选项。

应用程序需要完整的 http 服务器、数据库和 GUI。 所以我知道最好的选择是拥有 perl。

我正在寻找一种方法来编译代码以确保安全 图形用户界面的开发也很简单。

我已经开始使用 Perl/TK,但是编写 GUI 的每一行都需要很多时间,而且调试起来也很困难。

是否有任何选项可以让 GUI 构建类似于 QT 或 .NET,以便可以轻松拖放 GUI 控件。

如果我使用 PerlQT,是否可以拖放? 是否可以在 PerlQT 中编译代码? 这是否适用于linux和windows? 有没有像 PerlGTK 之类的其他选项?

【问题讨论】:

【参考方案1】:

如果您认为“编译” Perl 脚本可以解决任何问题,您可能会感到失望。

通常,perl 解释器只是与纯源代码和任何使用的模块捆绑到一个庞大的可执行文件中。该脚本并未真正编译。这让一切变得更容易。此外,编译与安全性无关,充其量只能提供一些模糊性。 否则,您可能会走上疯狂的道路,使用将 Perl 操作码序列化为 C 代码的东西,然后编译它。请注意,虽然 perl 将源代码编译为操作码,但它已经执行了部分操作码,因此运行操作码序列化与运行实际程序不同。

在 *nix 系统上,编译 Perl 脚本很愚蠢,因为解释器很容易获得。

如果您想将 Perl 和外部代码融合到一个程序中(!= 一个可执行文件),请查看 XS 语言(将 C 绑定到 Perl)或 Inline 系列模块。

(Perl-)Qt 非常棒,但我上次查看最近的绑定时,这些东西看起来维护不足且处于试验阶段。我确信您可以以某种方式利用 QtDesigner 进行设计部分,并将 Perl 代码与它挂钩。如果您在每个目标系统上都有一个编译器,这应该是非常可移植的。哈哈。

您应该认真考虑的其他 GUI 工具包是 GTK 和 Wx。 .Net 已经出来了。

请意识到 Perl 是一种非常动态的语言。虽然编译不太可能有用,但您可以使用匿名子例程等函数式编程技术和编译时代码生成等元编程技术来简化您的 GUI 编码。如果您像编写 Java 或其他相当静态(和编译)的语言一样编写 Perl,如果 Perl 看起来很痛苦,我不会感到惊讶。

【讨论】:

将东西编译成一个整体的一个原因是,应用程序可以相对容易地重新分发,而不会出现奇怪的版本控制问题。也就是说,为了包装而不是为了安全。 (是的,这确实使应用补丁更加尴尬;这是一种权衡。)

以上是关于编译的 Perl GUI 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

进度条升级 Perl Win32::GUI

你能回顾一下我对 Cucumber 的 Perl 重写吗?

如何在 Linux 中检测通过 GUI 登录的用户

如何从 Perl 完全改变 Win32 标题栏的外观?

如何检查 Perl-CGI 应用程序中的所有错误(例如,使用 Perl 编译器或类似 lint 的工具检查,免费开源?)

帮助我使用 perl win32 gui 模块