1#! /usr/bin/perl 2 3use strict ; 4use warnings ; 5use Carp ; 6 7use Data::TreeDumper ; 8use Data::TreeDumper::OO ; 9 10my $sub = sub {} ; 11 12my %tree = 13 ( 14 A => 15 { 16 a => 17 { 18 } 19 , bbbbbb => $sub 20 , c123 => $sub 21 , d => \$sub 22 , eeeee => $sub 23 , f => $sub 24 , g => $sub 25 } 26 27 , C => { 28 b => 29 { 30 a => 31 { 32 a => 33 { 34 } 35 36 , b => sub 37 { 38 } 39 , c => 42 40 } 41 42 } 43 } 44 , B => 'scalar' 45 , C => [qw(element_1 element_2)] 46 , HASH => 47 { 48 a => 'a', 49 1 => 1, 50 '1a' => 1, 51 2 => 2, 52 9 => 9, 53 10 => 10, 54 11 => 11, 55 19 => 19, 56 20 => 20, 57 '2b' => '2b', 58 '2b0' => '2b0', 59 '20b' => '20b', 60 } 61 ) ; 62 63my $hi = '25' ; 64my $array_ref = [0, 1, \$hi] ; 65$tree{Nadim} = \$array_ref ; 66#~ $tree{REF2_to_array_ref} = \$array_ref ; 67 68#~ $tree{aREF_to_C} = $tree{C} ; 69#~ $tree{REF_to_C} = \($tree{C}) ; 70 71#~ $tree{aREF_REF_to_C} = $tree{REF_to_C} ; 72#~ $tree{REF_REF_to_C} = \($tree{REF_to_C}) ; 73 74$tree{SELF} = [ 0, 1, 2, \%tree] ; 75$tree{RREF} = \\$array_ref ; 76$tree{RREF2} = \\$array_ref ; 77 78$tree{SCALAR} = \$hi ; 79$tree{SCALAR2} = \$hi ; 80$tree{ARRAY} = [0, 1, \$hi] ; 81 82my $object = {m1 => 12, m2 => [0, 1, 2]} ; 83bless $object, 'SuperObject' ; 84 85$tree{OBJECT} = $object ; 86$tree{OBJECT2} = $object ; 87$tree{OBJECT_REF_REF_REF} = \\\$object ; 88 89my $ln = 'Long_name ' x 20 ; 90$tree{$ln} = 0 ; 91 92$tree{ARRAY2} = [0, 1, \$object, $object] ; 93 94use IO::File; 95my $fh = new IO::File; 96$tree{FILE} = $fh ; 97 98use IO::Handle; 99my $io = new IO::Handle; 100 101$tree{IO} = $io ; 102 103$tree{ARRAY_ZERO} = [] ; 104 105sub HashKeysStartingAboveA 106{ 107my $tree = shift ; 108 109if('HASH' eq ref $tree) 110 { 111 return( 'HASH', undef, sort grep {!/^A/} keys %$tree) ; 112 } 113 114return (Data::TreeDumper::DefaultNodesToDisplay($tree)) ; 115} 116 117my $tree_dumper = new Data::TreeDumper::OO ; 118#~ $tree_dumper->UseAnsi(1) ; 119#~ $tree_dumper->UseAscii(0) ; 120#~ $tree_dumper->SetMaxDepth(2) ; 121 122print $tree_dumper->Dump(\%tree, "Data:TreeDumper dump example:", DISPLAY_ROOT_ADDRESS => 1, DISPLAY_PERL_SIZE => 0, USE_ASCII => 0) ; 123 124use Data::Dumper; 125print Dumper \%tree ; 126 127print $tree_dumper->Dump(\%tree, "Data:TreeDumper dump example:", MAX_DEPTH => 1, DISPLAY_NUMBER_OF_ELEMENTS_OVER_MAX_DEPTH => 1) ; 128 129