Unix/Linux Go Back    


RedHat 9 (Linux i386) - man page for devel::symdump (redhat section 3)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


Devel::Symdump(3)	       User Contributed Perl Documentation		Devel::Symdump(3)

NAME
       Devel::Symdump - dump symbol names or the symbol table

SYNOPSIS
	   # Constructor
	   require Devel::Symdump;
	   @packs = qw(some_package another_package);
	   $obj = Devel::Symdump->new(@packs);	      # no recursion
	   $obj = Devel::Symdump->rnew(@packs);       # with recursion

	   # Methods
	   @array = $obj->packages;
	   @array = $obj->scalars;
	   @array = $obj->arrays;
	   @array = $obj->hashes;
	   @array = $obj->functions;
	   @array = $obj->filehandles;	# deprecated, use ios instead
	   @array = $obj->dirhandles;	# deprecated, use ios instead
	   @array = $obj->ios;
	   @array = $obj->unknowns;

	   $string = $obj->as_string;
	   $string = $obj->as_HTML;
	   $string = $obj1->diff($obj2);

	   $string = Devel::Symdump->isa_tree;	  # or $obj->isa_tree
	   $string = Devel::Symdump->inh_tree;	  # or $obj->inh_tree

	   # Methods with autogenerated objects
	   # all of those call new(@packs) internally
	   @array = Devel::Symdump->packages(@packs);
	   @array = Devel::Symdump->scalars(@packs);
	   @array = Devel::Symdump->arrays(@packs);
	   @array = Devel::Symdump->hashes(@packs);
	   @array = Devel::Symdump->functions(@packs);
	   @array = Devel::Symdump->ios(@packs);
	   @array = Devel::Symdump->unknowns(@packs);

       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 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 pre-
       cise, from perl5.003_11 the names of the members of a GLOB have changed. "IO" is the
       internal name for all kinds of input-output handles while "FILEHANDLE" and "DIRHANDLE" are
       deprecated.

       "Devel::Symdump" accordingly introduces the new method ios() which returns filehandles 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.

DESCRIPTION
       This little package serves to access the symbol table of perl.

       "Devel::Symdump->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 "main". That
	   means to get the whole symbol table, just do a "rnew" without arguments.

	   "Devel::Symdump->new(@packages)"

	   does not go into recursion and only analyzes the packages that are given as arguments.

       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 "$", "@" or "%".  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.

       As_string() and as_HTML() return a simple string/HTML representations of the object.

       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.

       Isa_tree() and inh_tree() both return a simple string representation of the current inher-
       itance tree. The difference between the two methods is the direction from which the tree
       is viewed: top-down or 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:

       % print Devel::Symdump->inh_tree
	       AutoLoader
		       DynaLoader
			       Socket
	       DynaLoader
		       Socket
	       Exporter
		       Carp
		       Config
		       Socket

	   The inh_tree method shows on the left hand side a package name and indented to the
	   right the packages that use the former.

       % print Devel::Symdump->isa_tree
	       Carp
		       Exporter
	       Config
		       Exporter
	       DynaLoader
		       AutoLoader
	       Socket
		       Exporter
		       DynaLoader
			       AutoLoader

	   The isa_tree method displays from left to right ISA relationships, so Socket IS A
	   DynaLoader and DynaLoader IS A AutoLoader. (Actually, they were at the time this man-
	   page was written)

       You may call both methods, isa_tree() and inh_tree(), with an object. If you do that, the
       object will store the output and retrieve it when you call the same method again later.
       The typical usage would be to use them as class methods directly though.

SUBCLASSING
       The design of this package is intentionally primitive and allows it to be subclassed eas-
       ily. An example of a (maybe) useful subclass is Devel::Symdump::Export, a package which
       exports all methods of the Devel::Symdump package and turns them into functions.

AUTHORS
       Andreas Koenig <andk@cpan.org> and Tom Christiansen <tchrist@perl.com>. Based on the old
       dumpvar.pl by Larry Wall.

perl v5.8.0				    2002-04-18				Devel::Symdump(3)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 07:09 PM.