in reply to Dissapearing from under one's reference

Well, it won't print 'Anything goes' for 2 reasons: the dereferencing is incorrect, and the value does not hold 'Anything goes' :-)

my(@arr); { my %var; $var{"love"}="Anthing goes"; $arr[0]=\%var; } print ${$arr[0]}{love},"\n"; print $arr[0]->{love},"\n"; print $arr[0]{love},"\n";

But, indeed the hash still exists in memory as long as something points to it (it isn't let go until its refcount hits 0) --- this is commonly used for constructing a datastructure within a subroutine and returning a reference to it ... think of OO and returning a blessed reference from the constructor for example.