我该如何使用Perl制作一个富有的Web应用程序?

3

我有一个基于Perl命令行的脚本,想要将其转换为一个跨平台的富GUI桌面应用程序。最好的方法是什么?我希望保留Perl内部和逻辑代码,但GUI应该是一个富Web应用程序。


你可以看一下 mod_perl,它可以让你基于 Perl 代码开发 Web 应用程序,但我不认为它能创建一个“丰富的桌面 GUI”。如果要使用 Perl 开发非“Web”应用程序,请考虑使用 TCLTK 库。 - dangerstat
2
我不确定你知道自己想要什么。 - Sinan Ünür
2
“Web GUI”与桌面GUI不同。 - George Stocker
4个回答

12

我一直在开发使用Firefox作为平台的Perl模块XUL::Gui,用于从Perl中呈现跨平台GUI。你只需要在目标平台上安装Firefox就可以了。它目前还在开发中,但可能已经足够稳定满足你的需求。以下是一个简短的语法示例:

use XUL::Gui;

display Window title => 'Foo Processor',
    Hbox(
        (map {
            my $id = $_;
            CheckBox id => $id,
                label   => "use $id",
                option  => sub {shift->checked eq 'true' ? " -$id" : ()}
          } qw/foo bar baz/
        ),
        TextBox( id => 'num', 
             type   => 'number', 
             option => sub {' -num ' . shift->value}
        ),
        Button( label => 'run', oncommand => sub {
            my @opts = map {$ID{$_}->option} qw/foo bar baz num/;
            $ID{txt}->value = `fooproc @opts`;
        }),
    ),
    TextBox( FILL, id => 'txt' );

如果您有任何功能请求(或发现任何错误),请告诉我,因为它正在开发中。

而且,由于您在Firefox内部,Firefox支持的任何Web技术(canvas,iframes,flash ...)都可以完全从Perl中使用。对于GUI组件,您可以使用任何HTML和XUL标记的组合。


+1 @Eric Strom 我还没有机会用它做任何真正的事情,但我喜欢 XUL::Gui - Sinan Ünür
1
@Sinan => 谢谢,到目前为止这是一个有趣的项目。新版本将在几天内发布,其中包括完整的 Chrome 支持(操作系统集成的拖放、本地文件选择器等),当然还有一些 bug 修复。 - Eric Strom
@Eric Strom 我会关注并试一试。 - Sinan Ünür
Eric,我尝试运行了一下这个示例,它看起来很有趣,也是我想要的。你有这个模块的初学者教程吗?我想开始学习它。 - dan
嗨,Eric,PAUSE所拥有的你的电子邮件地址无法使用。你能给我发一封电子邮件吗?我想和你谈谈这个模块。 :) - brian d foy
显示剩余2条评论

2

Mojolicious是一个轻量但功能强大的Web框架,非常适合将脚本封装成快速且完美的Web应用程序。

我们在本地网络上广泛使用它,让同事们可以利用我们在Unix系统上开发的脚本,无论他们使用的平台是什么。对于简单的任务,您甚至可以将所有内容(模板和路由)打包到一个文件中:请查看Mojolicous::Lite


1

它需要是一个丰富的、本地操作系统风格的GUI吗?还是只是任何旧的用户界面?你可以使用CGI::Application快速启动并运行一些东西,这可能是干净、可维护代码和短学习曲线之间的最佳平衡点。对于更重型的工作,Catalyst似乎是首选。

如果你想要制作一个具有菜单和可拖动对话框等完整功能的GUI,Perl可能不是最佳选择。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接