Help-Site Computer Manuals
Software
Hardware
Programming
Networking
  Algorithms & Data Structures   Programming Languages   Revision Control
  Protocols
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

UNIVERSAL::dump
add dump methods to all classes and objects

UNIVERSAL::dump - add dump methods to all classes and objects


NAME

UNIVERSAL::dump - add dump methods to all classes and objects


SYNOPSIS


  use UNIVERSAL::dump; # implicit 'dump'

 or:

  use UNIVERSAL::dump qw(dump peek); # create both "dump" and "peek"

 or:

  use UNIVERSAL::dump ( { _dump => 'dump' } ); # dump using "_dump"

 or:

  use UNIVERSAL::dump ( { bar => 'Bar::Dumper' } ); # "foo" dumper

 my $foo = Foo->new;

 print $foo->dump;         # send dump of $foo to STDOUT

 print $foo->dump( $bar ); # send dump of $bar to STDOUT

 $foo->dump;         # send dump of $foo to STDERR

 $foo->dump( $bar ); # send dump of $bar to STDERR


DESCRIPTION

Loading the UNIVERSAL::dump module adds one or more methods to all classes and methods. It is intended as a debugging aid, alleviating the need to add and remove debugging code from modules and programs.

By default, it adds a method ``dump'' to all classes and objects. This method either dumps the object, or any parameters specified, using the Data::Dumper manpage.

As an extra feature, the output is sent to STDERR whenever the method is called in a void context. This makes it easier to dump variable structures while debugging modules and programs.

The name of the method can be specified by parameters when loading the module. These are the method names that are currently recognized:

blessed
Return or prints with which class the object (or any value) is blessed. Uses the Scalar::Util manpage's ``blessed'' subroutine.

dump
Return or prints a representation of the object (or any value that is specified). Uses the Data::Dumper manpage's ``Dumper'' subroutine.

peek
Return or prints the internal representation of the object (or any value that is specified). Uses the Devel::Peek manpage's ``Dump'' subroutine.

refaddr
Return or prints with the memory address of the object (or any value specified). Uses the Scalar::Util manpage's ``refaddr'' subroutine.

If you cannot use one of the preset names of methods, you can specify a reference to a hash instead, in which the key is the new name of the method and the value is the name with which the dumping method is normally indicated.

If you have a dumping subroutine that is not available by default, you can add your own by specifying a reference to a hash, in which the key is the method name, and the value is the (fully qualified) name of the subroutine.

To prevent different modules fighting over the same method name, a check has been built in which will cause an exception when the same method is attempted with a different subroutine name.


WHY?

One day, I finally had enough of always putting a ``dump'' and ``peek'' method in my modules. I came across the UNIVERSAL::moniker manpage one day, and realized that I could do something similar for my ``dump'' methods.


REQUIRED MODULES


 Data::Dumper (any)


CAVEATS

AUTOLOADing methods

Any method called ``dump'' (or whichever class or object methods you activate with this module) will not be AUTOLOADed because they are already found in the UNIVERSAL package..


AUTHOR

Elizabeth Mattijsen, <liz@dijkmat.nl>.

Please report bugs to <perlbugs@dijkmat.nl>.


COPYRIGHT

Copyright (c) 2004 Elizabeth Mattijsen <liz@dijkmat.nl>. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

Programminig
Wy
Wy
yW
Wy
Programming
Wy
Wy
Wy
Wy