I would not use PerlTK. The author IRL died a few years ago I heard. PerlTK is a fork of the Tk graphics/gui library, with the Tcl interp replaced with a layer around the Perl interp so the Perl Interp has the same C API as the Tcl Interp and the Tk C graphics library thinks its interacting with a Tcl Interp when its Perl Interp in sheeps clothing. The Perl language side of PerlTk is written ontop of the C API of Tk. Tkx and Tcl::Tk are written ontop of the Tcl API of Tk. Perl TK is a very adventurous design but difficult to maintain. It has not been code synced with mainstream Tk since the 1990s I think. PerlTK will not be getting any upgrades or features ever again due to its design. Bug fixes are hard to get and it will never reach a "1.0" version. Perl Tk is Perl's oldest, most native, and close to heart of Perl dev's, GUI system. Its even had half a dozen paper books written on it, Tkx/Tcl::Tk none. Use Tcl:Tk or Tkx. They are blind/automated bridges to the Tcl interpreter (think about
Win32::OLE), whichever Tcl interp is installed on your machine. Any new features that Tk gets instantly appear in Tkx/Tcl::Tk. Bugs are always Tk's devel's problems, not perl's or cpan devel's problems. Also Perl Tk isn't thread safe and never will be. Tkx/Tcl:Tk are because the Tcl Interp is thread safe. Using Perl Tk's C API to submit events from random OS threads to the Perl Tk event loop using Tk's C API is a race condition that works because 99% of the time because Perl interp is asleep in the event loop.