You seem to be reinventing
fields, and, dare I say it, pseudo-hashes, a now deprecated feature where you could (or still can) use the hash syntax to access fields in an array.
Borrowing your example, the internal structure for pseudo-hashes is:
my $record = [
{ K_AGE => 1, K_NAME => 2 },
1001,
'Doraemon'
];
And you can access it like:
print "Name: '$record->{K_NAME}' Age: $record->{K_AGE}\n";
It just works for 5.6.x, still works for 5.8.3 though with a warning, and this feature will be gone from 5.10.0 on. See the docs on
fields for more info, including info on what you really should be using instead.