There have been numerous occasions when I wanted an
ordered hash, but usually I can’t remember to write
them down.
Here’s just one.
Once I wanted a “dynamic case statement” of sorts.
I wanted to use procs as values in a hash. Something
like:
actions = { /abcd/ => lambda { do_this },
/xyz/ => lambda { do_that },
/abc/ => lambda { other }}
Then I could just iterate through the keys looking
for a match, then use that key to find the associated
proc and call it.
However, I quickly noticed that this is no good. The
order of iteration is unpredictable. So I couldn’t
guarantee that (for example) /abcd/ would be tested
before /abc/, and so on.
So yeah, I ended up using an array of arrays. But it
just felt wrong.
Hal