Another viable solution (not mentioned in the FAQ) for a cross-platform GUI is to provide an HTML-based interface, essentially by turning your app into a CGI app, and then by embedding into your app a mini HTTP server (such as HTTP::Server::Simple
, but there are also others on CPAN).
POPFile is a successful cross platform stand-alone application (entirely written in Perl) which does exactly this.
The new Devel::ebug is another (much acclaimed) application that does the same (through Catalyst).
Furthermore Ajax-based technologies offer nowadays the same level of interactivity offered by a native GUI, so using such an interface you don't have to give up anything.