#!perl -w use Data::Dumper; $Data::Dumper::Purity=1; $a = { type => 'int' }; $b = \$a->{type}; print "case 1\n", Data::Dumper->Dump([$a, $b], [qw/a b/]); print "case 2\n", Data::Dumper->Dump([$a, $b], [qw/x y/]); print "case 3\n", Data::Dumper->Dump([$b, $a], [qw/b a/]); print "case 4\n", Data::Dumper->Dump([$b, $a]); #### case 1 $a = { 'type' => 'int' }; $b = \$a->{'type'}; case 2 $x = { 'type' => 'int' }; $y = \$x->{'type'}; case 3 $b = \'int'; $a = { 'type' => ${$b} }; case 4 $VAR1 = \'int'; $VAR2 = { 'type' => ${$VAR1} };