http://qs321.pair.com?node_id=814489


in reply to Data Dumper Question

[ I had this written before an internet outage. I might as well still post it even though something similar was already posted. ]

First, the solution is to set Purity

#!/usr/bin/perl use strict; use Data::Dumper; my $var1 = { temp => "123" }; my $hash_ref; push @{$hash_ref->{test1}}, $var1; push @{$hash_ref->{test2}}, $var1; print Dumper($hash_ref); my $dump = do { local $Data::Dumper::Purity = 1; Dumper($hash_ref); }; my $VAR1; eval "$dump; 1" or die $@; print Dumper($VAR1);
$VAR1 = { 'test1' => [ { 'temp' => '123' } ], 'test2' => [ $VAR1->{'test1'}[0] ] }; $VAR1 = { 'test1' => [ { 'temp' => '123' } ], 'test2' => [ $VAR1->{'test1'}[0] ] };

But really, Data::Dumper is not the right tool. Storable can best represent Perl data structures. If you want something human-readable, both JSON and YAML cover all the basics.