After reading all these responses it occurs to me that you are overlooking one other thing - what happens when your dataset grows again? You might be able to reduce perls memory use to 50%, 25% or 1% of it's current bloat, but what happens when your dataset increases again? There's a real limit on how much overhead you can whittle away.
in reply to STOP Trading Memory for Speed
Why not shift your data storage off to a cluster? You could do this in many ways. There are distributed database products, or you could roll your own (it is very easy).
There are also various types of clustering software, which may or may not be appropriate depending on exactly how you are processing your data.
Finally keep in mind that gigabit EtherNet is probably faster than even your RAID arrays transfer capability. A couple of computers with 1 Gb of memory each linked up with gigabit network cards will thrash almost any disc array, and still be cheaper than that 64-bit ultrasparc
My favourite solution always was 'just add another computer'.
I didn't believe in evil until I dated it.