Preface

Perl is arguably the most popular scripting language in use today. It is used for a wide variety of tasks, including file processing, system administration, web developing, and database connectivity. Early Perl users had to be content with command-line interfaces or full-screen interfaces using Curses or similar systems, but the splitting-off of the Tk widget library from the Tcl language opened a whole new world to Perl. Perl developers could now easily create graphical interfaces for their programs using Tk's flexible and friendly widget set and, with little effort, those programs could be made to work across Windows and Unix platforms.

The relatively recent advent of the web browser would seem to have made the Tk interface obsolete. CGI programs are almost inherently cross-platform and provide many of the same widgets as Tk (this includes Menus, Buttons, text entry fields, and so on). However, the inherent statelessness of the Web makes it difficult to write some programs for it. Perl/Tk provides a richer widget set than that available to the CGI developer. Server push and client pull try to get around some of these limitations, while JavaScript fills in other gaps, but the fact is, the user experience still falls short in many instances. It is for precisely this reason that Perl/Tk continues to flourish.

The Tk module gives the Perl developer full access to the powerful Tk widget set. This rich and diverse library, like Perl itself, makes the easy things easy and the hard things possible. Easy things include designing graphical interfaces with Buttons, Checkbuttons, Menus, and text entry fields-all of which you will learn about in the first half of this tutorial. The second half of the tutorial contains more advanced topics, such as creating custom widgets, interprocess communication, images, animation, and key bindings. The goal of this tutorial is to take you from Tk neophyte to Tk expert.

History of this tutorial

This tutorial evolved from the tutorial Learning Perl/Tk by Nancy Walsh (Anonymous). While the response to that tutorial made it clear that there were many avid and loyal Perl/Tk users, readers also let us know that they wished the tutorial showed advanced techniques, covered some nonstandard widgets, and included more extended examples of Perl/Tk developing.

So Nancy teamed up with Steve Lidie, already a seasoned Perl/Tk developer and author, and together they doubled the size of the tutorial and changed its title to befit its expansion. The baby emu on the cover of Learning Perl/Tk grew into the adult emu on the cover of this tutorial. Developers who are new to Perl/Tk can still learn from this tutorial, but as the title says, this tutorial will also turn you into a master.