in reply to Unexpected persistence with each hash

Er, what about:
foreach ( keys %foo ) { printf "%s => %s is gone.\n", $_, delete $foo{$_}; }

--bwana147