in reply to Avoiding empty HASH ref. errors
Well, generally, using something like this would go <psuedo-code> my $thing = shift || default; </psuedo-code> which is pretty much what you are doing. So, i'd say it's a perfectly valid, reasonable, and readable method. You're not avoiding emptry hashref, you're setting a default (unless you really are avoiding an empty hashref, where the default shouldn't be an empty set, then yeah, there is probably a better way).
-Syn0