in reply to Losing a reference to a package instantiation

If you used the strict pragma, Perl would tell you what you're doing wrong. You're using two different variables. One, lexical, variable, $self, and another, global, variable %Cluster::self, which you overwrite with the clustername every time you assign.

You might want to take a look at tye's References Quick Reference.