A Perl/Tk widget to view recursively a data structure
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Tk::ObjScanner is a Perl/Tk module that provides a GUI to scan any perl data including the attributes of an object.

The scanner is a composite widget made of a HList. This widget acts as a scanner to the object (or hash ref) passed with the 'caller' parameter. The scanner will retrieve all keys of the hash/object and insert them in the HList.

When the user double clicks on a key, the corresponding value will be added in the HList. If the user use the middle button to open a tied item, the internals of the tied object will be displayed.

If the value is a scalar, the scalar will be displayed in a popup text window.

If the value is a code ref, the deparsed code will be displayed in a popup text window.

This widget can be used as a regular widget in a Tk application or can be used as an autonomous popup widget that will display the content of a data structure. The latter is like a call to a graphical Data::Dumper.

The scanner recognizes:

  • tied hashes arrays or scalars
  • weak reference (See weaken function of Scalar::Util for details)

Pseudo-hashes are deprecated

This module was tested with perl5.8.2 and Tk 804.025 (beta). But should work with older versions of perl (> 5.6.1) or Tk.

See the embedded documentation in the module for more details.

Note that test program (in the 't' directory) can be run interactively this way :

 perl t/xxx.t 1


gunzip -c <dist_file>.tar.gz | tar xvf -
cd <dist_directory>
perl Makefile.PL
make test          
make install

From github, this module is built with Dist::Zilla.

You must make sure that the following modules are installed:


On debian or ubuntu, do:

sudo aptitude install \
     libdist-zilla-plugin-prepender-perl \
     libdist-zilla-plugins-cjm-perl \

Then run:

dzil build 


dzil test
dzil build

Comments and suggestions are always welcome.


Many thanks to Achim Bohnet for all the tests, patches (and reports) he made. Many improvements were made thanks to his efforts.

Thanks to Rudi Farkas for the 'watch' patch.

Thanks to Slavec Rezic for the pseudo-hash prototype.

Thanks to heytitle for the documentation fixes

Thanks to E. Choroba for the retro compatibility patch


Copyright © 1997-2004,2007,2014,2017 Dominique Dumont. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

- Dominique Dumont ( ddumont at cpan.org )