$ perldoc Data::Dumper |grep eval printing and "eval" eval Data::Dumper->Dump([$foo, $bar], [qw(foo *ary)]); eval $d->Dump; The return value can be "eval"ed to get back an identical copy of the The default output of self-referential structures can be "eval"ed, but fill in these references. Moreover, if "eval"ed when strictures are in Controls the degree to which the output can be "eval"ed to recreate output may not always be parseable by "eval". $bar = eval(Dumper($boo)); $Data::Dumper::Purity = 1; # fill in the holes for eval $d = eval $c; if "Purity" is set. You can "eval" the result, but bear in mind that the #### $VAR1 = { 'test1' => [ { 'temp' => '123' } ], 'test2' => [ {} ] }; $VAR1->{'test2'}[0] = $VAR1->{'test1'}[0];