Data-TreeDumper

 view release on metacpan or  search on metacpan

TreeDumper.pm  view on Meta::CPAN


package Data::TreeDumper ;

use 5.006 ;
use strict ;
use warnings ;
use Carp ;
use Check::ISA ;

require Exporter ;

our @ISA = qw(Exporter) ;
our %EXPORT_TAGS = ('all' => [ qw() ]) ;
our @EXPORT_OK = ( @{$EXPORT_TAGS{'all'} } ) ;
our @EXPORT = qw(DumpTree PrintTree DumpTrees CreateChainingFilter MD1 MD2) ;

our $VERSION = '0.43' ;

my $WIN32_CONSOLE ;

BEGIN
	{
	if($^O ne 'MSWin32')
		{
		eval "use Term::Size;" ;
		die $@ if $@ ;
		}
	else
		{
		eval "use Win32::Console;" ;
		die $@ if $@ ;
		
		$WIN32_CONSOLE= new Win32::Console;
		}
	}
	
use Text::Wrap ;
#use Text::ANSI::Util qw(ta_wrap);
use Class::ISA ;
use Sort::Naturally ;

use constant MD1 => ('MAX_DEPTH' => 1) ;
use constant MD2 => ('MAX_DEPTH' => 2) ;

#-------------------------------------------------------------------------------
# setup values
#-------------------------------------------------------------------------------

our %setup =
	(
	  FILTER                 => undef
	, FILTER_ARGUMENT        => undef
	, LEVEL_FILTERS          => undef
	, TYPE_FILTERS           => undef
	, USE_ASCII              => 1
	, MAX_DEPTH              => -1
	, INDENTATION            => ''
	, NO_OUTPUT              => 0
	, START_LEVEL            => 1
	, VIRTUAL_WIDTH          => 160
	, DISPLAY_ROOT_ADDRESS   => 0
	, DISPLAY_ADDRESS        => 1
	, DISPLAY_PATH           => 0
	, DISPLAY_OBJECT_TYPE    => 1
	, DISPLAY_INHERITANCE    => 0
	, DISPLAY_TIE            => 0
	, DISPLAY_AUTOLOAD       => 0
	, DISPLAY_PERL_SIZE      => 0
	, DISPLAY_PERL_ADDRESS   => 0
	, NUMBER_LEVELS          => 0
	, COLOR_LEVELS           => undef
	, GLYPHS                 => ['|  ', '|- ', '`- ', '   ']
	, QUOTE_HASH_KEYS        => 0
	, DISPLAY_NO_VALUE	 => 0
	, QUOTE_VALUES           => 0
	, REPLACEMENT_LIST       => [ ["\n" => '[\n]'], ["\r" => '[\r]'], ["\t" => '[\t]'] ]
	
	, DISPLAY_NUMBER_OF_ELEMENTS_OVER_MAX_DEPTH => 0
	, ELEMENT                => 'element'
	, DISPLAY_CALLER_LOCATION=> 0
	
	, __DATA_PATH            => ''
	, __PATH_ELEMENTS        => []
	, __TYPE_SEPARATORS      => {
					  ''       => ['<SCALAR:', '>']
					, 'REF'    => ['<', '>']
					, 'CODE'   => ['<CODE:', '>']
					, 'HASH'   => ['{\'', '\'}']
					, 'ARRAY'  => ['[', ']']
					, 'SCALAR' => ['<SCALAR_REF:', '>']
					} 
	) ;
	
#----------------------------------------------------------------------
# package variables à la Data::Dumper (as is the silly  naming scheme)
#----------------------------------------------------------------------

our $Filter               = $setup{FILTER} ;
our $Filterarguments      = $setup{FILTER_ARGUMENT} ;
our $Levelfilters         = $setup{LEVEL_FILTERS} ;



( run in 2.014 seconds using v1.01-cache-2.11-cpan-524268b4103 )