am naive to estimate whether this is a right way of doing...
The right way of doing what? I'm not sure what you have archieved here. Typically, the reason to store something in a hash is to be able to quickly find it again - based on another criterium than 'order'. And you store something in an array to be able to find something based on order. Since you are left with none of the benefits of storing your data in a hash, and have lost some of the benefits of using an array, I don't think this is the right way - without even knowing where the way is supposed to lead to.