The GTK (GIMP Toolkit) is a library for creating graphical user interfaces. It is licensed using the LGPL license, so you can develop open software, free software, or even commercial non-free software using GTK without having to spend anything for licenses or royalties.
It's called the GIMP Toolkit because it was originally written for the GNU Image Manipulation Program (GIMP), but GTK has been used in a large number of software projects, including the GNU Network Object Model Environment (GNOME) project. GTK is built on top of the GDK (GIMP Drawing Kit) which is basically a wrapper around the low-level functions for accessing the underlying windowing functions (Xlib in the case of the X windows system).
Despite being written completely in C, GTK is essentially an object oriented API. GTK is implemented using the idea of classes and callbacks (pointers to functions). One advantage to having the library written in C is that most languages are able to interface with C libraries, making GTK available to several languages, including C++, Perl, Python, Eiffel, and many more (see the GTK Home Page for a more complete list).
Perl is a scripting language designed to make the simple things easy, and the hard things possible. If you are new to Perl, I highly recommend both Learning Perl and Programming Perl by O'reilly and Associates.
This tutorial will focus on the Gtk bindings to Perl, so while an in-depth knowledge of Perl isn't necessary, it is preferred. I will seldom take the time to explain any Perl features in this