I went along a different route:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my ($hash_ref, $var1, $var2);
print "\n------This is my test of Data Dumper------\n\n";
$var1->{'temp'} = '123';
push (@{$hash_ref->{'test1'}}, $var1);
push (@{$hash_ref->{'test2'}}, $var1);
warn Dumper($hash_ref);
$var2->{'temp2'} = '123';
warn Dumper($hash_ref), "\n\n";
print "----------------------------------------------\n";
exit;
Update: Using Data::Dump::Streamer instead:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dump::Streamer;
my ($hash_ref, $var1, $var2);
print "\n------This is my test of Data Dumper------\n\n";
$var1->{'temp'} = '123';
push (@{$hash_ref->{'test1'}}, $var1);
push (@{$hash_ref->{'test2'}}, $var1);
warn Dump($hash_ref);
$var2->{'temp2'} = '123';
warn Dump($hash_ref), "\n\n";
print "----------------------------------------------\n";
exit;