in reply to Is this ancient perl or just a cargo cult?
It doesn't predate hashes; hashes were in the earliest versions of Perl.
Perl lets you bless any reference (scalar, hash, array, function, filehandle, glob) as an object. Most objects are blessed hashes, but that's not necessary.
Accessing array elements is a little bit faster than accessing hash entries. Using a named constant as an array index lets you access object attributes directly by name and gives you a little more compile-time typo protection. It's rare, so most people probably who know about it don't consider it worth the trouble.