I fully agree with what you wrote above. I just prefere to have references for my whole complex data. So instead of using a named hash like %data; i prefere using $data = {};. Maybe it's because I dislike using stuff like ${ $data{$foo} }. $data->{$foo} just looks better and I am aware of what I am doing. But that's pretty much personal preference..