!!~PerlGUI
Welche GUI-Bibliotheken gibt es für Perl?

!Perl-GTK
* Homepage GTK2 für Perl http://gtk2-perl.sourceforge.net/
* Tutorials
**[1|http://personal.riverusers.com/~swilhelm/gtkperl-tutorial/] 
**[2|http://www-zeuthen.desy.de/computing/documentation/perl/gtkperl-tutorial/]

!Perl-Qt
* Homepage http://perlqt.sourceforge.net/
* [PM-Vortrag|http://renormalist.net/cgi-bin/twiki/view/PM/PerlQt] der [Dresden
Perlmongers|http://renormalist.net/cgi-bin/twiki/view/PM/WebHome]

!Perl / Tk

* Homepage http://www.perltk.org
* [Mastering Perl/Tk von OReilly|http://www.oreilly.com/catalog/mastperltk/index.html] - Zitat: ''"Mastering Perl/Tk is the one and only book you need for programming with Perl/Tk."'' (''ThomasBayen besitzt eins'')

!! Erfahrungen

ThomasBayen hat sich in 2004 intensiv mit GUIs unter Perl
beschäftigt. Sein Fazit: Die obigen drei sind die einzigen mit
einer halbwegs funktionierenden API. Dazu kommt eventuell noch das
Java::Swing-Modul, mit dem ich noch keine Erfahrung habe (wohl aber
mit Swing an sich, das ich empfehlen kann).

* Die QT-Implementation ist von der Struktur her grosser Mist, weil sie nicht richtig in das Perl-Objekt-Modell integriert ist. Dies liegt daran, daß QT an sich absoluter Mist ist, wenn es darum geht, es in irgendeiner anderen Sprache als C++ zu benutzen. Die originalen "Signals & Slots" können logischerweise nicht direkt von Perl aus benutzt werden und so hat man es in der Perl-API eigentlich immer mit zwei Objekten zu tun: Dem gewrappten C++-Objekt und einem Perl-Objekt. Wer eigene Widget-Typen erstellen und wie native Widgets integrieren will, hat keine Chance, dies zu erreichen.

* Perl/Tk ist eine echte Perl-Lösung. Man kann in Perl komplett eigene Widgets schreiben, die sich dann nahtlos in das Toolkit integrieren. Es existiert schon eine ganze Weile und kann als ausgereift gelten. Es ist mit einem überschaubaren Aufwand zu lernen und insofern schnell benutzt. Es gibt eine lebendige Mailingliste, die auch hilft. Der Nachteil ist, daß es keine so große Community hat wie moderne Toolkits (GTK oder QT) und deshalb vom Design und von "neumodischen" Widgets und Features her etwas altbacken wirkt. So fehlt z.B. die "Magie" der Textausgabe unter Pango genauso wie ein vernünftiges HTML-Widget, von der Integration in einen  modernen Gnome- oder KDE-Desktop ganz abgesehen. Perl/Tk ist im Prinzip auf jeden Rechner portabel, auf dem Perl läuft. Ich selber habe ein identisches Programm unter Linux und Windows laufen gehabt.

* Die GTK-Umsetzung für Perl ist sehr gelungen. Dies liegt im übrigen auch an der Struktur von GTK, die dies gut fördert (Ja - Stallman hat Recht: Es IST strukturell besser als Qt). Leider ist die Perl-Doku recht dürftig und die Nutzerbasis ist bei GTK-Perl auch sehr klein. Auf der anderen Seite sind gerade diese zwei Punkte natürlich bei GTK an sich ein grosser Vorteil. Ich habe ausschließlich mit der C-Doku gearbeitet und mich dort gut zurechtgefunden. Allerdings muss man sich dazu schon etwas ernsthafter mit dem Thema auseinandersetzen. Die Integration in Perl-Objekte hat mir ganz gut gefallen und es ist möglich, eigene Widget-Typen zu erstellen und mit nativen Typen zu kombinieren. Ein Betrieb unter Windows war nicht möglich (kann sich aber inzwischen geändert haben).

;Fazit: Perl/Tk ist das richtige, um mal eben eine GUI an ein Programm dranzustricken. Es ist auch die "most perlish" Lösung. Das schönste Ergebnis ergibt sich mit GTK, das von der Grundlage her viel leistungsfähiger und moderner ist; allerdings hat es eine etwas längere Lernkurve. QT ist für kleine Aufgaben zu kompliziert und für große Aufgaben völlig ungeeignet, solange man keine eigenen Objekttypen erzeugen kann; damit ist es der große Verlierer des Vergleichs.

! Nachtrag(21.09.2005): __wxPerl__

Nicht zu vergessen ist das GUI Framework Wxwindows, das portabel
und laut Homepage (http://www.wxwindows.org/) auf jeder
unterstützten Plattform ein natives Look & Feel bietet. Mit
wxPerl (http://wxperl.sourceforge.net/) steht eine API zu diesem
(O-Ton) "awesome" Werkzeug bereit. Aktuell ist wxwindows Release
2.6.1 und ~wxPerl in der Version 0.25
vom 12.07.2005.

__Update zu wxPerl am 08.11.2006:__ (von MarkusMonderkamp)
* wxWindows heißt nun [wxWidgets|http://sourceforge.net/projects/wxwindows] und hat mittlerweile die Version 2.7.1
* und [wxPerl|http://wxperl.eu/] #0.50
* wxTutorials von [Perl.com|http://perl.com]: [another GUI for Perl|http://www.perl.com/pub/a/2001/09/12/wxtutorial1.html] und [Making Menus with wxPerl|http://www.perl.com/pub/a/2005/10/06/wxperl_menus.html]
* [Wx|http://www.wxwindows.org/manuals/2.6.3/wx_librarieslist.html#librarieslist] ist von Hause aus C++ -lastig und deckt einen großen Funktionsumfang ab, selbst Netzwermethoden sind dabei. 


Wenn ich mehr Erfahrungen in der Handhabung habe, werde ich Euch
hier daran teilhaben lassen.

[{Tag Perl}]