Going a bit offtopic, how does the internal hash lookup compare to the array solution he has now? It seems to me that internally, Perl will be doing nearly the same thing - comparing the given key to each of the keys in the hash.
Comment on Re: Re: Re: how can I speed up this perl??
The beauty of a hash is that Perl doesn't need to compare the string to every key in the hash. It computes the hash for the string and looks in the bucket for that hash. In a well balanced hash, there should only be one key in that hash. The string needs to be compared against the key(s) in the bucket.
The hash replaces multiple comparisons with a hash calculation and usually one comparison.