use Scalar::Util qw/blessed/; use Data::Dumper; sub pretty { my $self = shift; my $structure = shift; my $depth = shift; $depth = 0 if not defined $depth; $depth += 2; my $string; if (blessed($structure)) { return Dumper($structure); } if (ref $structure eq ref {} ) { # HASH my @arr; foreach my $el (sort keys %{ $structure }) { push @arr, " "x$depth . $el ." => ". $self->pretty($$structure{$el},$depth); } $string .= "HASH { \n" .join(",\n",@arr,undef); $string .= " "x($depth-2) ."}"; } elsif (ref $structure eq ref [] ) { # ARRAY my @arr; foreach my $el ( @{ $structure }) { push @arr, " "x$depth . $self->pretty($el,$depth); } $string .= "ARRAY [ \n" .join(",\n",@arr,undef); $string .= " "x($depth-2) ."]"; } else { $string .= "'".$structure."'"; } return $string; }