Perl's object system sucks. So, once upon a time, some people thought that "pseudo-hashes" were the solution, and "pseudo-hashes" became part of the core. It soon dawned upon people that Perl's object system sucks, but that "pseudo-hashes" sucked more. Given Perl's "let's be very very careful with removing functionality" policy, and the long reign of 5.8.x, the last remnants of "pseudo-hashes" did not disappear before 5.10.
Pseudo-hashes were implemented as arrays whose first element was a reference to a hash.