in reply to Losing a reference to a package instantiation
Use use strict; use warnings;!!
You're modifying hash %self instead of modifying the hash referenced by $self.