diff --git a/lib/Template/Plugin/Dumper.pm b/lib/Template/Plugin/Dumper.pm index afcfaeee..cec64638 100644 --- a/lib/Template/Plugin/Dumper.pm +++ b/lib/Template/Plugin/Dumper.pm @@ -40,39 +40,44 @@ our $AUTOLOAD; sub new { my ($class, $context, $params) = @_; - my ($key, $val); - $params ||= { }; - - - foreach my $arg (@DUMPER_ARGS) { - no strict 'refs'; - if (defined ($val = $params->{ lc $arg }) - or defined ($val = $params->{ $arg })) { - ${"Data\::Dumper\::$arg"} = $val; - } - } bless { _CONTEXT => $context, + params => $params || {}, }, $class; } -sub dump { +sub get_dump_obj { my $self = shift; - my $content = Dumper @_; - return $content; + + my $dumper_obj = Data::Dumper->new( \@_ ); + + my $params = $self->{ params }; + + foreach my $arg ( @DUMPER_ARGS ) { + my $val = exists $params->{ lc $arg } ? $params->{ lc $arg } + : $params->{ $arg }; + + $dumper_obj->$arg( $val ) if defined $val; + } + + return $dumper_obj; } +sub dump { scalar shift->get_dump_obj( @_ )->Dump() } sub dump_html { my $self = shift; - my $content = Dumper @_; + + my $content = $self->dump( @_ ); + for ($content) { s/&/&/g; s//>/g; s/\n/
\n/g; } + return $content; }