summaryrefslogtreecommitdiff
path: root/pod/perlfaq3.pod
diff options
context:
space:
mode:
authorRafael Garcia-Suarez <rgarciasuarez@gmail.com>2007-11-23 11:39:00 +0000
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2007-11-23 11:39:00 +0000
commitc195e131167b24ce65760dbc38d744bc87427feb (patch)
tree0551d6f7dcc3047c8f0eb648a5a73ebce094a22f /pod/perlfaq3.pod
parentd0344c4ee20d4d3bcccab25592af08a69faed492 (diff)
downloadperl-c195e131167b24ce65760dbc38d744bc87427feb.tar.gz
FAQ sync
p4raw-id: //depot/perl@32464
Diffstat (limited to 'pod/perlfaq3.pod')
-rw-r--r--pod/perlfaq3.pod95
1 files changed, 73 insertions, 22 deletions
diff --git a/pod/perlfaq3.pod b/pod/perlfaq3.pod
index bc2607a0ea..7b58df85af 100644
--- a/pod/perlfaq3.pod
+++ b/pod/perlfaq3.pod
@@ -1,6 +1,6 @@
=head1 NAME
-perlfaq3 - Programming Tools ($Revision: 8539 $)
+perlfaq3 - Programming Tools ($Revision: 10127 $)
=head1 DESCRIPTION
@@ -138,7 +138,7 @@ C<-d> switch. It's fully explained in L<perldebug>.
If you'd like a graphical user interface and you have Tk, you can use
C<ptkdb>. It's on CPAN and available for free.
-If you need something much more sophisicated and controllable, Leon
+If you need something much more sophisticated and controllable, Leon
Brocard's Devel::ebug (which you can call with the -D switch as -Debug)
gives you the programmatic hooks into everything you need to write your
own (without too much pain and suffering).
@@ -216,7 +216,7 @@ http://www.cpan.org/authors/id/TOMC/scripts/toms.exrc.gz
The a2ps http://www-inf.enst.fr/%7Edemaille/a2ps/black+white.ps.gz does
lots of things related to generating nicely printed output of
-documents, as does enscript at http://people.ssh.fi/mtr/genscript/ .
+documents.
=head2 Is there a ctags for Perl?
@@ -327,9 +327,7 @@ If you are using MacOS, the same concerns apply. MacPerl (for Classic
environments) comes with a simple editor. Popular external editors are
BBEdit ( http://www.bbedit.com/ ) or Alpha (
http://www.his.com/~jguyer/Alpha/Alpha8.html ). MacOS X users can use
-Unix editors as well. Neil Bowers (the man behind Geekcruises) has a
-list of Mac editors that can handle Perl (
-http://www.neilbowers.org/macperleditors.html ).
+Unix editors as well.
=over 4
@@ -401,7 +399,7 @@ http://www.slickedit.com/
There is also a toyedit Text widget based editor written in Perl
that is distributed with the Tk module on CPAN. The ptkdb
-( http://world.std.com/~aep/ptkdb/ ) is a Perl/tk based debugger that
+( http://ptkdb.sourceforge.net/ ) is a Perl/tk based debugger that
acts as a development environment of sorts. Perl Composer
( http://perlcomposer.sourceforge.net/ ) is an IDE for Perl/Tk
GUI creation.
@@ -501,20 +499,73 @@ directory http://www.cpan.org/authors/Tom_Christiansen/scripts/rep.gz ;
this program repeats a command and updates the screen as needed, rendering
B<rep ps axu> similar to B<top>.
-=head2 How can I use X or Tk with Perl?
+=head2 How can I write a GUI (X, Tk, Gtk, etc.) in Perl?
+X<GUI> X<Tk> X<Wx> X<WxWidgets> X<Gtk> X<Gtk2> X<CamelBones> X<Qt>
-The Tk.pm module is a completely Perl-based, object-oriented interface
-to the Tk toolkit that doesn't force you to use Tcl just to get at Tk.
-Sx is an interface to the Athena Widget set. Both are available from
-CPAN. See the directory
-http://www.cpan.org/modules/by-category/08_User_Interfaces/
+(contributed by Ben Morrow)
-Invaluable for Perl/Tk programming are the Perl/Tk FAQ at
-http://phaseit.net/claird/comp.lang.perl.tk/ptkFAQ.html , the Perl/Tk Reference
-Guide available at
-http://www.cpan.org/authors/Stephen_O_Lidie/ , and the
-online manpages at
-http://www-users.cs.umn.edu/%7Eamundson/perl/perltk/toc.html .
+There are a number of modules which let you write GUIs in Perl. Most
+GUI toolkits have a perl interface: an incomplete list follows.
+
+=over 4
+
+=item Tk
+
+This works under Unix and Windows, and the current version doesn't
+look half as bad under Windows as it used to. Some of the gui elements
+still don't 'feel' quite right, though. The interface is very natural
+and 'perlish', making it easy to use in small scripts that just need a
+simple gui. It hasn't been updated in a while.
+
+=item Wx
+
+This is a Perl binding for the cross-platform wxWidgets toolkit
+L<http://www.wxwidgets.org>. It works under Unix, Win32 and Mac OS X,
+using native widgets (Gtk under Unix). The interface follows the C++
+interface closely, but the documentation is a little sparse for someone
+who doesn't know the library, mostly just referring you to the C++
+documentation.
+
+=item Gtk and Gtk2
+
+These are Perl bindings for the Gtk toolkit L<http://www.gtk.org>. The
+interface changed significantly between versions 1 and 2 so they have
+separate Perl modules. It runs under Unix, Win32 and Mac OS X (currently
+it requires an X server on Mac OS, but a 'native' port is underway), and
+the widgets look the same on every plaform: i.e., they don't match the
+native widgets. As with Wx, the Perl bindings follow the C API closely,
+and the documentation requires you to read the C documentation to
+understand it.
+
+=item Win32::GUI
+
+This provides access to most of the Win32 GUI widgets from Perl.
+Obviously, it only runs under Win32, and uses native widgets. The Perl
+interface doesn't really follow the C interface: it's been made more
+Perlish, and the documentation is pretty good. More advanced stuff may
+require familiarity with the C Win32 APIs, or reference to MSDN.
+
+=item CamelBones
+
+CamelBones L<http://camelbones.sourceforge.net> is a Perl interface to
+Mac OS X's Cocoa GUI toolkit, and as such can be used to produce native
+GUIs on Mac OS X. It's not on CPAN, as it requires frameworks that
+CPAN.pm doesn't know how to install, but installation is via the
+standard OSX package installer. The Perl API is, again, very close to
+the ObjC API it's wrapping, and the documentation just tells you how to
+translate from one to the other.
+
+=item Qt
+
+There is a Perl interface to TrollTech's Qt toolkit, but it does not
+appear to be maintained.
+
+=item Athena
+
+Sx is an interface to the Athena widget set which comes with X, but
+again it appears not to be much used nowadays.
+
+=back
=head2 How can I make my Perl program run faster?
@@ -655,7 +706,7 @@ or
Pass arrays and hashes by reference, not by value. For one thing, it's
the only way to pass multiple lists or hashes (or both) in a single
call/return. It also avoids creating a copy of all the contents. This
-requires some judgment, however, because any changes will be propagated
+requires some judgement, however, because any changes will be propagated
back to the original data. If you really want to mangle (er, modify) a
copy, you'll have to sacrifice the memory needed to make one.
@@ -982,9 +1033,9 @@ to process and install a Perl distribution.
=head1 REVISION
-Revision: $Revision: 8539 $
+Revision: $Revision: 10127 $
-Date: $Date: 2007-01-11 00:07:14 +0100 (Thu, 11 Jan 2007) $
+Date: $Date: 2007-10-27 21:40:20 +0200 (Sat, 27 Oct 2007) $
See L<perlfaq> for source control details and availability.