diff options
author | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2007-11-23 11:39:00 +0000 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2007-11-23 11:39:00 +0000 |
commit | c195e131167b24ce65760dbc38d744bc87427feb (patch) | |
tree | 0551d6f7dcc3047c8f0eb648a5a73ebce094a22f /pod/perlfaq3.pod | |
parent | d0344c4ee20d4d3bcccab25592af08a69faed492 (diff) | |
download | perl-c195e131167b24ce65760dbc38d744bc87427feb.tar.gz |
FAQ sync
p4raw-id: //depot/perl@32464
Diffstat (limited to 'pod/perlfaq3.pod')
-rw-r--r-- | pod/perlfaq3.pod | 95 |
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. |