My biggest problem with Perl is trying to track and remember what dictionaries contain what. I end up with massive comments and ludicrous variable names just so it's clear when I come back to the code 5 years later.
Dictionaries and lists of things don't relieve you from the job of naming and encapsulating the data you're dealing with. But full on classes are usually only needed when behaviour needs dispatching from polymorphic locations, and that isn't too often.