As an aside, I once worked with a group that liked to tie() hashes to Berkely-DB files with millions of records in each. (Dunno, I guess they mistrusted SQL?) Anyway, they would do things like that, and the fairly-limited systems would choke because all of those keys had to be pulled out into memory in order to be sorted. I observed that the each() function when applied to such files would automagically walk the index-tree and thus produce the keys in ascending order, eliminating what was a very costly process.
If you must produce keys in sorted order, this process will work as described. However, if the hashes in question are large, and particularly if they are ties, be very aware of what you are actually asking the computer to do.