@@ -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: