The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
ChangeLog 5693
ChangeLog.svn 0103
MANIFEST 1117
META.yml 010
Makefile.PL 3141
README 192
SIGNATURE 039
lib/Devel/Symdump/Export.pm 02
lib/Devel/Symdump.pm 4344
t/pod.t 06
t/podcover.t 05
t/recur.t 023
12 files changed (This is a version diff) 132485
@@ -1,3 +1,25 @@
+2006-01-02  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>
+
+	* release 2.05
+
+	* fix the testcase for recursion so that it compiles and works
+	also after patch 26370 to perl after which stashes are not
+	autovivified anymore.
+
+2005-12-25  Andreas J. Koenig  <andreas.koenig.gmwojprw@franz.ak.mind.de>
+
+	* release 2.04
+
+	* Export.pm now strict clean
+
+	* Makefile.PL up to date
+
+	* added ChangeLog.svn
+
+	* added tests for recursion, pod, podcover
+
+	* Fixed rt.cpan.org #8766--recursion
+
 2002-03-01  Andreas J. Koenig  <andreas.koenig@anima.de>
 
 	* lib/Devel/Symdump.pm: perl 5.6.1 introduced a package name of
@@ -23,87 +45,102 @@
 	* Fixed the test 6 in t/symdump.t. This test was broken by
 	perl-5.6.0 but not Devel::Symdump itself.
 
+1997-05-16  Andreas Koenig
+
+	* Release 2.00
+
+	* Fixed typos in the manpage, added a test for tree, no functional
+	change, released 2.00.
+
+1997-03-31  Andreas Koenig
+
+	* 1.99_01
+
+	* 1.99_01 is the designated 2.00.
 
+	* Between 1.20 and 1.23 the method as_HTML was introduced and a
+	few code cleanups happened.
 
-=head1 2.00, May 16, 1997
+	* 2.00 switches implementation to use *ENTRY{XXX} internally. This
+	means that we can determine scalarness even for undefined scalars.
+	We don't expect unknowns anymore.
 
-Fixed typos in the manpage, added a test for tree, no functional
-change, released 2.00.
+	* 2.00 introduces the new ios() method which should replace the
+	older filehandles() and dirhandles() methods. For backwards
+	compatibility the old methods continue to work as they used to.
 
-=head1 1.99_01, March 31, 1997
+	* 2.00 comes with isa_tree and inh_tree utility methods for
+	analysing the inheritance tree. Devel::Symdump objects may be used
+	to create snapshots, but their typical use would be as class
+	methods.
 
-1.99_01 is the designated 2.00.
+1995-08-16  Andreas Koenig
 
-Between 1.20 and 1.23 the method as_HTML was introduced and a few code
-cleanups happened.
+	* 1.20
 
-2.00 switches implementation to use *ENTRY{XXX} internally. This means
-that we can determine scalarness even for undefined scalars. We don't
-expect unknowns anymore.
+	* test 7 of t/symdump.t was too capricious. In fact the test was
+	based on wrong assumptions about loaded packages in the perl
+	binary. Static perls and dynamic perls have different symbol
+	tables when they run thetests. So test 7 is gone.
 
-2.00 introduces the new ios() method which should replace the older
-filehandles() and dirhandles() methods. For backwards compatibility
-the old methods continue to work as they used to.
+	* test 4 of t/symdump.t relied on $@ being set like in perl5.001m.
+	This might not be a correct assumption. So test 4 is replaced with
+	a dummy 'print ok' until the $@ problem is sorted out
 
-2.00 comes with isa_tree and inh_tree utility methods for analysing
-the inheritance tree. Devel::Symdump objects may be used to create
-snapshots, but their typical use would be as class methods.
+1995-07-03  Andreas Koenig
 
-=head1 1.20, August 16th, 1995
+	* 1.19
 
-test 7 of t/symdump.t was too capricious. In fact the test was based
-on wrong assumptions about loaded packages in the perl binary. Static
-perls and dynamic perls have different symbol tables when they run the
-tests. So test 7 is gone.
+	* Added an as_string method.
 
-test 4 of t/symdump.t relied on $@ being set like in perl5.001m. This
-might not be a correct assumption. So test 4 is replaced with a dummy
-'print ok' until the $@ problem is sorted out
+	* Rewrote the test scripts so they output standard test strings
+	"ok nnn". This is dangerous for new perl releases, but will help
+	me do get bug reports early.
 
-=head1 1.19, July 3rd, 1995
+	* Renamed the exporting example package to Devel::Symdump::Export.
 
-Added an as_string method.
+1995-05-29  Andreas Koenig
 
-Rewrote the test scripts so they output standard test strings "ok
-nnn". This is dangerous for new perl releases, but will help me do get
-bug reports early.
+	* 1.16
 
-Renamed the exporting example package to Devel::Symdump::Export.
+	* Changed '${pack}::' and relatives back to "$pack\:\:" to make
+	the package "-w" safe. Deleted the debug statement in _doit()
+	after Gurusamy Sarathy fixed the bug in perl5.001, but left a
+	comment there.
 
-=head1 1.16, May 29th, 1995
+	* Changed the AUTHORS section to plain "Andreas & Tom".
 
-Changed '${pack}::' and relatives back to "$pack\:\:" to make the
-package "-w" safe. Deleted the debug statement in _doit() after
-Gurusamy Sarathy fixed the bug in perl5.001, but left a comment there.
+	* Added this Changes file :)
 
-Changed the AUTHORS section to plain "Andreas & Tom".
+1995-05-28  Andreas Koenig
 
-Added this Changes file :)
+	* 1.14
 
-=head1 1.14, May 28th,1995
+	* After a considerable amount of mail exchange between Tom and me,
+	we now have a unknowns() method for all the rest in the symbol
+	table that we currently don't follow further. new() is renamed to
+	rnew() which stands for recursive new. new() now does not go into
+	recursion which becomes the default behaviour for people calling
+	directly Devel::Symdump->arrays etc.
 
-After a considerable amount of mail exchange between Tom and me, we
-now have a unknowns() method for all the rest in the symbol table that
-we currently don't follow further. new() is renamed to rnew() which
-stands for recursive new. new() now does not go into recursion which
-becomes the default behaviour for people calling directly
-Devel::Symdump->arrays etc.
+	* Added a Devel::Symdump::Exp package for Tom who wanted the
+	methods exported. Tom had tried to add Exporter to the package and
+	to export the undefined methods directly. Andreas didn't trust
+	this trick although it seemed to work fine. So they are still
+	considering if it can be done.
 
-Added a Devel::Symdump::Exp package for Tom who wanted the methods
-exported. Tom had tried to add Exporter to the package and to export
-the undefined methods directly. Andreas didn't trust this trick
-although it seemed to work fine. So they are still considering if it
-can be done.
+1995-05-27  Andreas Koenig
 
+	* 1.09
 
-=head1 1.09, May 27th, 1995
+	* Drops all prettyprint functionality and becomes a primitiv
+	package after some talk with Tom Christiansen and Gurusamy
+	Sarathy. Moreover, Dean Roehrich's additions to the perlbot
+	manpage gave me (Andreas) some hints about package globals which
+	now get a new dress within the object.
 
-Drops all prettyprint functionality and becomes a primitiv package
-after some talk with Tom Christiansen and Gurusamy Sarathy. Moreover,
-Dean Roehrich's additions to the perlbot manpage gave me (Andreas)
-some hints about package globals which now get a new dress within the
-object.
+1995-05-xx  Andreas Koenig
 
-=head1 1.05, May 1995
+	* 1.05
 
-First release of the formerly Devel::Debug called package.
+	* First release of the formerly Devel::Debug called package.
@@ -0,0 +1,103 @@
+------------------------------------------------------------------------
+r14 | k | 2006-01-02 22:30:57 +0100 (Mon, 02 Jan 2006) | 2 lines
+Changed paths:
+   M /trunk/README
+
+autogenerated
+
+------------------------------------------------------------------------
+r13 | k | 2006-01-02 22:28:12 +0100 (Mon, 02 Jan 2006) | 2 lines
+Changed paths:
+   M /trunk/ChangeLog
+   M /trunk/lib/Devel/Symdump.pm
+   M /trunk/t/recur.t
+
+fix testcase, up version number, document change in ChangeLog
+
+------------------------------------------------------------------------
+r11 | k | 2005-12-25 07:17:16 +0100 (Sun, 25 Dec 2005) | 2 lines
+Changed paths:
+   M /trunk/Makefile.PL
+
+release better with debian perl and -I
+
+------------------------------------------------------------------------
+r10 | k | 2005-12-25 07:13:29 +0100 (Sun, 25 Dec 2005) | 2 lines
+Changed paths:
+   M /trunk/MANIFEST
+
+podcover
+
+------------------------------------------------------------------------
+r9 | k | 2005-12-25 07:12:20 +0100 (Sun, 25 Dec 2005) | 2 lines
+Changed paths:
+   M /trunk/ChangeLog
+   M /trunk/MANIFEST
+
+blah
+
+------------------------------------------------------------------------
+r8 | k | 2005-12-25 07:07:26 +0100 (Sun, 25 Dec 2005) | 1 line
+Changed paths:
+   A /trunk/ChangeLog.local
+   M /trunk/README
+
+
+------------------------------------------------------------------------
+r7 | k | 2005-12-25 07:06:18 +0100 (Sun, 25 Dec 2005) | 2 lines
+Changed paths:
+   M /trunk/Makefile.PL
+
+first stab
+
+------------------------------------------------------------------------
+r6 | k | 2005-12-25 06:58:23 +0100 (Sun, 25 Dec 2005) | 1 line
+Changed paths:
+   M /trunk/MANIFEST
+   M /trunk/lib/Devel/Symdump.pm
+   A /trunk/t/pod.t
+   A /trunk/t/podcover.t
+   A /trunk/t/recur.t
+
+Fix rt.cpan.org #8766--recursion; add tests for recursion, pod, podcover
+------------------------------------------------------------------------
+r5 | k | 2005-12-25 05:15:02 +0100 (Sun, 25 Dec 2005) | 1 line
+Changed paths:
+   M /trunk/lib/Devel/Symdump/Export.pm
+
+fix strict
+------------------------------------------------------------------------
+r4 | k | 2005-12-25 04:59:41 +0100 (Sun, 25 Dec 2005) | 1 line
+Changed paths:
+   A /trunk/ChangeLog
+   A /trunk/MANIFEST
+   A /trunk/MANIFEST.SKIP
+   A /trunk/Makefile.PL
+   A /trunk/README
+   A /trunk/benchmark
+   A /trunk/benchmark/benchmark.out
+   A /trunk/benchmark/benchmark.pl
+   A /trunk/lib
+   A /trunk/lib/Devel
+   A /trunk/lib/Devel/Symdump
+   A /trunk/lib/Devel/Symdump/Export.pm
+   A /trunk/lib/Devel/Symdump.pm
+   A /trunk/t
+   A /trunk/t/autogen.t
+   A /trunk/t/diff.t
+   A /trunk/t/export.t
+   A /trunk/t/symdump.t
+   A /trunk/t/tree.t
+
+starting in subversion without history
+------------------------------------------------------------------------
+r1 | k | 2005-12-25 04:55:42 +0100 (Sun, 25 Dec 2005) | 1 line
+Changed paths:
+   A /trunk
+
+
+------------------------------------------------------------------------
+
+Local Variables:
+mode: text
+End:
@@ -1,11 +1,17 @@
-ChangeLog			history of the package
-MANIFEST			This file
-Makefile.PL			Makefile generator
-README				README
-lib/Devel/Symdump.pm		The module
-lib/Devel/Symdump/Export.pm	For illustration of a Exporter interface
-t/autogen.t			test sample
-t/diff.t			test sample
-t/export.t			test sample
-t/symdump.t			test sample
-t/tree.t			test sample
+ChangeLog
+ChangeLog.svn
+MANIFEST
+Makefile.PL
+README
+lib/Devel/Symdump.pm
+lib/Devel/Symdump/Export.pm
+t/autogen.t
+t/diff.t
+t/export.t
+t/pod.t
+t/podcover.t
+t/recur.t
+t/symdump.t
+t/tree.t
+META.yml                                 Module meta-data (added by MakeMaker)
+SIGNATURE                                Public-key signature (added by MakeMaker)
@@ -0,0 +1,10 @@
+# http://module-build.sourceforge.net/META-spec.html
+#XXXXXXX This is a prototype!!!  It will change in the future!!! XXXXX#
+name:         Devel-Symdump
+version:      2.05
+version_from: lib/Devel/Symdump.pm
+installdirs:  site
+requires:
+
+distribution_type: module
+generated_by: ExtUtils::MakeMaker version 6.30_01
@@ -1,12 +1,150 @@
 use lib "./lib";
 use Devel::Symdump ();
-use ExtUtils::MakeMaker;
-$Verbose=1 if $ENV{USER} eq "k";
+use ExtUtils::MakeMaker qw(:DEFAULT);
 
+eval { require File::Spec; };
+my $HAVE_FILE_SPEC = !$@;
+use strict;
+use vars qw($VERSION);
+
+my $Id = q$Id: Makefile.PL 146 2005-08-09 04:25:21Z k $;
+$VERSION = sprintf "%.3f", 1 + substr(q$Rev: 146 $,4)/1000;
+
+my $version_diff = 0; # we'll have to die if this becomes true
+if ($HAVE_FILE_SPEC) {
+  my $version_from = File::Spec->catfile(qw(lib Devel Symdump.pm));
+  my $version_set_manually = 1; # not by SVN
+
+  if ($ARGV[0] && $ARGV[0] eq "--setversion") {
+    die "Your perl is a bit dated[$]].\nDo not make a release with it\n" if $] < 5.008;
+    die "Your MakeMaker is a bit dated[$]].\nDo not make a release with it\n"
+        if $ExtUtils::MakeMaker::VERSION < 6.30;
+    die "Your MakeMaker doesn't do the sign woodoo" unless
+        MM->can("signature_target");
+    shift @ARGV;
+    my $st;
+    open $st, "svn st -u|" or die;
+    my $dirty = 0;
+    while (<$st>) {
+      next if /^\?/;
+      next if /^Head revision:/;
+      next if /^Status against revision:/;
+      print;
+      $dirty++;
+    }
+    close $st;
+    die "Not everything checked in?" if $dirty;
+
+    # $re parses the upper boundary of the output of svnversion
+    my $re;
+    eval q{ $re = qr/(?:\d+:)?(\d+)[SM]*$/; };
+    die $@ if $@; # old perl
+    my($sv_dot)  = `svnversion .`             =~ $re;
+    my($sv_from) = `svn st -u -v $version_from`  =~ /^.{8}\s*(?:\d+)\s*(\d+)/;
+    die "Could not determine sv_from or sv_dot"
+        unless $sv_from > 0 && $sv_dot > 0;
+    if ($version_set_manually) {
+      unshift @INC, "lib";
+      require $version_from;
+      open my $fh, "make the-release-name|" or die;
+      my $have_version;
+      while (<$fh>) {
+        next unless /^version\s+([\d\._]+)/;
+        $have_version = eval $1;
+      }
+      die "could not determine current version from Makefile" unless $have_version;
+      eval q{
+      no warnings "numeric";
+      if ($Devel::Symdump::VERSION != $have_version) {
+        warn "Not equal: D:S:VERSION[$Devel::Symdump::VERSION] Makefile version[$have_version]";
+        $version_diff = 1;
+      }
+};
+      die $@ if $@;
+    } else {
+      if ($sv_dot > $sv_from) {
+        warn "setting some property to make a checkin of this file possible";
+        0==system(svn => "propset",
+                  "cpan:release",
+                  "after_$sv_dot",
+                  $version_from) or die;
+        warn "checking in to get the version up to the bleading edge";
+        0==system(svn => "ci",
+                  "-m",
+                  "Property set for release after_$sv_dot",
+                  $version_from) or die;
+        # will have to die after Makefile is rewritten:
+        $version_diff = 1;
+      }
+    }
+    exit unless $version_diff;
+  }
+}
+
+my @sign = (MM->can("signature_target") ? (SIGN => 1) : ());
 WriteMakefile(
 	      NAME => "Devel::Symdump",
 	      DISTNAME => "Devel-Symdump",
 	      VERSION_FROM => "lib/Devel/Symdump.pm",
 	      'clean' => {FILES => '*/*/*~'},
-	      'dist' => {DIST_DEFAULT => 'ci tardist'},
+              'dist' => {
+                         DIST_DEFAULT => 'Makefile setversion README all chlog tardist',
+                         COMPRESS => 'gzip -9f'
+                        },
+              @sign,
 	     );
+
+if ($version_diff){
+  die "
+==> I had to update some \$VERSIONs <==
+==> Your Makefile has been rebuilt. <==
+==> Please rerun the make command.  <==
+";
+}
+
+sub MY::postamble {
+  q{
+setversion:
+	$(PERL) Makefile.PL --setversion
+
+README: lib/Devel/Symdump.pm Makefile
+	chmod +w $@
+	pod2text lib/Devel/Symdump.pm > $@
+
+chlog ::
+	LC_ALL=en_GB.utf8 svn log -v -r `svnversion . | perl -ne '/(?:\d+:)?(\d+)[SM]*$$/&&print $$1'`:1 > ChangeLog.svn
+	cat ChangeLog.local >> ChangeLog.svn
+
+the-release-name :
+	$(NOECHO) $(ECHO) 'version ' $(VERSION)
+	$(NOECHO) $(ECHO) 'release-name ' $(DISTVNAME).tar$(SUFFIX)
+
+release ::
+	/usr/bin/perl -I../../CPAN/SVN/release-lib -S release $(DISTVNAME).tar$(SUFFIX)
+
+sign:
+	cpansign -s
+
+howto-release:
+	@$(ECHO) make ci dist \&\& make release
+}
+}
+
+sub MY::dist_ci {
+  return qq{ci :
+	svn ci
+};
+}
+
+sub MY::dist_test {
+  return q{
+# if we depend on $(DISTVNAME).tar$(SUFFIX), then the rest of the
+# Makefile breaks our intent to NOT remake dist
+disttest :
+	rm -rf $(DISTVNAME)
+	tar xvzf $(DISTVNAME).tar$(SUFFIX)
+	cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL
+	cd $(DISTVNAME) && $(MAKE) $(PASTHRU)
+	cd $(DISTVNAME) && $(MAKE) test $(PASTHRU)
+}
+}
@@ -1,19 +1,2 @@
-The perl module Devel::Symdump provides a convenient way to inspect
-perl's symbol table and the class hierarchie within a running program.
-
-From version 2.00, this module needs at least perl5.003.
-
-To build and install it, please run
-
-    perl Makefile.PL
-    make
-    make test
-    make install
-
-This package is Copyright (C) 1994-2000 by Andreas König. It may be
-copied, used and redistributed under the same terms as perl itself.
-
-Enjoy,
-andreas
-
-June 14, 2000
+-rwxr-xr-x 1 k k  8129 Jan  2 21:58 /usr/local/perl-5.8.0@26581/bin/pod2text*
+-rw-rw-r-- 1 k k 11718 Jan  2 22:21 lib/Devel/Symdump.pm
@@ -0,0 +1,39 @@
+This file contains message digests of all files listed in MANIFEST,
+signed via the Module::Signature module, version 0.51.
+
+To verify the content in this distribution, first make sure you have
+Module::Signature installed, then type:
+
+    % cpansign -v
+
+It will check each file's integrity, as well as the signature's
+validity.  If "==> Signature verified OK! <==" is not displayed,
+the distribution may already have been compromised, and you should
+not run its Makefile.PL or Build.PL.
+
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+SHA1 21046f5c3659cadf8b7ae9e0392575c8011b2d2b ChangeLog
+SHA1 31a42eadb525b3175d2638bc08e2eab6c19f7667 ChangeLog.svn
+SHA1 57c703a831e1f5ff653e6030716b9280baea9e2a MANIFEST
+SHA1 bfa964b38fac61df3ac59beb6e50f8b633370071 META.yml
+SHA1 96ab63982493763f8aea722fac4d7d93af7301db Makefile.PL
+SHA1 8434d7ced08cbdb0d78166f5ed9b504f461400ad README
+SHA1 7f3e85d9a4553e5150fce220c94e8168176a3e66 lib/Devel/Symdump.pm
+SHA1 fef2e4c5ea88bd09f2af618e32a58ee87be965a4 lib/Devel/Symdump/Export.pm
+SHA1 08075038f75f26eeac19654d9cc0d96c729c23d7 t/autogen.t
+SHA1 ac80cb093bffdce80ea28209197e58ec40b0cdd4 t/diff.t
+SHA1 6bc8983394b0a72d8ee3234b4788f9f81fbefca1 t/export.t
+SHA1 6a79f15a10337bd3450604abf39d4462df2a550b t/pod.t
+SHA1 0890cfccb8d1d026a7f142df290ac5b4e64f5e56 t/podcover.t
+SHA1 6a5c613f95f051fbac7aefffa2eadc7abca754bf t/recur.t
+SHA1 87c17a47801704570d96089259092d3062473348 t/symdump.t
+SHA1 d7e8e57a5c9676c8fd716b6b0fe13559c83d8711 t/tree.t
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.2 (GNU/Linux)
+
+iD8DBQFDuZud7IA58KMXwV0RAlrmAJ9DEgrvE+ax7IwnEJC0hLDk7+e6/gCeJiOx
+6FK2D7y8r/vO//YoXWK3V28=
+=xvEf
+-----END PGP SIGNATURE-----
@@ -2,6 +2,8 @@ package Devel::Symdump::Export;
 require Devel::Symdump;
 require Exporter;
 use Carp;
+use strict;
+use vars qw(@ISA @EXPORT_OK $AUTOLOAD);
 @ISA=('Exporter');
 
 @EXPORT_OK=(
@@ -3,10 +3,10 @@ package Devel::Symdump;
 use 5.003;
 use Carp ();
 use strict;
-use vars qw($Defaults $VERSION *ENTRY);
+use vars qw($Defaults $VERSION *ENTRY $MAX_RECURSION);
 
-$VERSION = '2.03';
-# $Id: Symdump.pm,v 1.46 2002/04/18 20:09:38 k Exp $
+$VERSION = '2.05';
+$MAX_RECURSION = 97;
 
 $Defaults = {
 	     'RECURS'   => 0,
@@ -18,7 +18,8 @@ $Defaults = {
 			    'functions'	=> 1,
 			    'ios'	=> 1,
 			    'unknowns'	=> 1,
-			   }
+			   },
+             'SEEN' => {},
 	    };
 
 sub rnew {
@@ -69,12 +70,14 @@ sub _symdump {
 	    }
 	    #### PACKAGE ####
 	    if (defined $val && defined *ENTRY{HASH} && $key =~ /::$/ &&
-		    $key ne "main::" && $key ne "<none>::")
-	    {
-		my($p) = $pack ne "main" ? "$pack\::" : "";
-		($p .= $key) =~ s/::$//;
-		$result->{$pack}{PACKAGES}{$p}++;
-		$gotone++;
+                $key ne "main::" && $key ne "<none>::") {
+                my($p) = $pack ne "main" ? "$pack\::" : "";
+                ($p .= $key) =~ s/::$//;
+                $result->{$pack}{PACKAGES}{$p}++;
+                $gotone++;
+                if (++$self->{SEEN}{*$val} > $Devel::Symdump::MAX_RECURSION){
+                    next;
+                }
 		push @todo, $p;
 	    }
 	    #### FUNCTION ####
@@ -315,7 +318,7 @@ Devel::Symdump - dump symbol names or the symbol table
     @array = $obj->filehandles;  # deprecated, use ios instead
     @array = $obj->dirhandles;   # deprecated, use ios instead
     @array = $obj->ios;
-    @array = $obj->unknowns;
+    @array = $obj->unknowns;     # only perl version < 5.003 had some
 
     $string = $obj->as_string;
     $string = $obj->as_HTML;
@@ -334,62 +337,56 @@ Devel::Symdump - dump symbol names or the symbol table
     @array = Devel::Symdump->ios(@packs);
     @array = Devel::Symdump->unknowns(@packs);
 
-=head2 Incompatibility with versions before 2.00
-
-Perl 5.003 already offered the opportunity to test for the individual
-slots of a GLOB with the *GLOB{XXX} notation. Devel::Symdump version
-2.00 uses this method internally which means that the type of
-undefined values is recognized in general. Previous versions
-couldn't determine the type of undefined values, so the slot
-I<unknowns> was invented. From version 2.00 this slot is still present
-but will usually not contain any elements.
-
-The interface has changed slightly between the perl versions 5.003 and
-5.004. To be precise, from perl5.003_11 the names of the members of a
-GLOB have changed. C<IO> is the internal name for all kinds of
-input-output handles while C<FILEHANDLE> and C<DIRHANDLE> are
-deprecated.
-
-C<Devel::Symdump> accordingly introduces the new method ios() which
-returns filehandles B<and> directory handles. The old methods
-filehandles() and dirhandles() are still supported for a transitional
-period.  They will probably have to go in future versions.
-
 =head1 DESCRIPTION
 
 This little package serves to access the symbol table of perl.
 
 =over 4
 
-=head2 C<Devel::Symdump-E<gt>rnew(@packages)>
+=item C<Devel::Symdump-E<gt>rnew(@packages)>
 
 returns a symbol table object for all subtrees below @packages.
 Nested Modules are analyzed recursively. If no package is given as
 argument, it defaults to C<main>. That means to get the whole symbol
 table, just do a C<rnew> without arguments.
 
-=head2 C<Devel::Symdump-E<gt>new(@packages)>
+The global variable $Devel::Symdump::MAX_RECURSION limits the
+recursion to prevent contention. The default value is set to 97, just
+low enough to survive the test suite without a warning about deep
+recursion.
+
+=item C<Devel::Symdump-E<gt>new(@packages)>
 
 does not go into recursion and only analyzes the packages that are
 given as arguments.
 
-=back
+=item packages, scalars, arrays, hashes, functions, ios
 
 The methods packages(), scalars(), arrays(), hashes(), functions(),
-ios(), and unknowns() each return an array of fully qualified
-symbols of the specified type in all packages that are held within a
-Devel::Symdump object, but without the leading C<$>, C<@> or C<%>.  In
-a scalar context, they will return the number of such symbols.
-Unknown symbols are usually either formats or variables that haven't
-yet got a defined value.
+ios(), and (for older perls) unknowns() each return an array of fully
+qualified symbols of the specified type in all packages that are held
+within a Devel::Symdump object, but without the leading C<$>, C<@> or
+C<%>. In a scalar context, they will return the number of such
+symbols. Unknown symbols are usually either formats or variables that
+haven't yet got a defined value.
+
+=item as_string
+
+=item as_HTML
 
 As_string() and as_HTML() return a simple string/HTML representations
 of the object.
 
+=item diff
+
 Diff() prints the difference between two Devel::Symdump objects in
 human readable form. The format is similar to the one used by the
 as_string method.
 
+=item isa_tree
+
+=item inh_tree
+
 Isa_tree() and inh_tree() both return a simple string representation
 of the current inheritance tree. The difference between the two
 methods is the direction from which the tree is viewed: top-down or
@@ -397,8 +394,6 @@ bottom-up. As I'm sure, many users will have different expectation
 about what is top and what is bottom, I'll provide an example what
 happens when the Socket module is loaded:
 
-=over 4
-
 =item % print Devel::Symdump-E<gt>inh_tree
 
     AutoLoader
@@ -452,3 +447,9 @@ F<E<lt>tchrist@perl.comE<gt>>. Based on the old F<dumpvar.pl> by Larry
 Wall.
 
 =cut
+
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# End:
@@ -0,0 +1,6 @@
+# -*- mode: cperl -*-
+
+use Test::More;
+eval "use Test::Pod 1.00";
+plan skip_all => "Test::Pod 1.00 required for testing POD" if $@;
+all_pod_files_ok();
@@ -0,0 +1,5 @@
+use Test::More;
+eval "use Test::Pod::Coverage";
+plan skip_all => "Test::Pod::Coverage required for testing pod coverage" if $@;
+plan tests => 1;
+pod_coverage_ok( "Devel::Symdump" );
@@ -0,0 +1,23 @@
+package Acme::Meta;
+
+BEGIN {
+  $::Meta::VERSION = $VERSION = 0; # autovivify for perl >= @26370
+  $Meta::{'Meta::'} = $main::{'Meta::'};
+  $Acme::Meta::{'Meta::'} = $main::{'Meta::'};
+}
+require Test::More;
+my $tests = 3;
+Test::More->import( tests => $tests );
+exit unless $tests;
+Test::More::ok(1);
+$Acme::Meta::Meta::Pie = "good";
+Test::More::is ($Acme::Meta::Meta::Meta::Meta::Pie, "good");
+Test::More::use_ok('Devel::Symdump');
+Devel::Symdump->rnew("Acme");
+
+__END__
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 2
+# End: