It is true that arrays are fast and occupy less memory.
The advantage of hash over array is that its keys can be characters, while the index of array can only be numbers. But hash is not as good as array in reading speed and memory consumption.
I'm not very good at details. . . However, your question can be discussed in the perl version of ChinaUnix. The link is as follows:
/forumdisplay.php? fid=25