#!/usr/bin/perl

$x = { a => 3, b => 4 };
$y = { c => 5, d => 6, e => 7 };

%{ $z }    = ( ); # Clear %{ $z }.
$z->{ $x } = ( ); # The keys %{ $z }, $x, and $y are stringified,
$z->{ $y } = ( ); # and the values %{ $z } are now all undef.

print "x is $x\n";
print "x->{b} is '$x->{b}'\n";
print "z->{x} is $z->{$x}\n";
print "z->{x}->{b} is '$z->{$x}->{b}'\n";

print "\n\n\n";

$x = { a => 3, b => 4 };
$y = { c => 5, d => 6, e => 7 };

%{ $z }    = ( ); # Clear %{ $z }.
$z->{ $x } = $x;  # The keys get stringified,
$z->{ $y } = $y;  # but the values are not stringified.

print "x is $x\n";
print "x->{b} is '$x->{b}'\n";
print "keys %z are @{[ keys %{ $z } ]}\n";
print "z->{x} is $z->{$x}\n";
print "z->{x}->{b} is '$z->{$x}->{b}'\n";
