michaelg.
While Tie::IxHash preserves insertion order and provides a way to get sorted keys/values, the sort order is a simple textual compare only.
For full control over the sort order, the ability to change it on the fly, and a bunch of other bells and whistles I would recommend Tie::Hash::Sorted.