http://www.perlmonks.org?node_id=714027


in reply to use of eval and Data::Dumper

As an alternative to eval'ing your stored HoH, have a look at Storable (part of the Perl distribution).

Replies are listed 'Best First'.
Re^2: use of eval and Data::Dumper
by Anonymous Monk on Sep 27, 2008 at 16:04 UTC
    Thanks broomduster, Storable might be better.

    But I did find the solution:
    #!/usr/bin/perl -w use strict; use Data::Dumper; my @ray=qw(bob me other); my %hash; foreach (@ray) { %{$hash{$_}}=("one", "$_+1", "two", "$_+2", "three", "$_+3") } my $ref=\%hash; $Data::Dumper::Terse=1; # remove "$VAR" in output my $r2=Dumper($ref); my $answer = eval $r2; print Dumper($answer);
      No, you want Purity=1, and Terse=1 is a step away from what you want. Better:
      #!/usr/bin/perl -w use strict; use Data::Dumper; my $dump; { # Writer # ----- my $hash = {}; my @ray=qw(bob me other); foreach (@ray) { %{$hash->{$_}} = ( one => $_+1, two => $_+2, three => $_+3, ); } print(Dumper($hash)); $dump = Data::Dumper->new([ $hash ], [qw( $hash )]) ->Purity(1) ->Dump(); } { # Reader # ------ my $hash; eval "$dump; 1" or die $@; print(Dumper($hash)); }