in reply to Re^10: the annoying keys "key" and "value"
in thread the annoying keys "key" and "value"

First of all, it doesn't make sense to use a hash when you are encoding order for obvious reasons

Exactly!

The proper Perl structure for which would be:

No, then you'd have to do

(keys(%$param))[0]

instead of

$param->{key}

to get the key. That's much worse.

Replies are listed 'Best First'.
Re^12: the annoying keys "key" and "value"
by jabowery (Beadle) on Dec 24, 2010 at 04:24 UTC
    Let me try to nail at least one tentacle of this jellyfish to the wall: When you're trying to represent a hash, you aren't trying to represent ordering between the elements. That much we agree on. So why would someone try to represent a hash with an array of two element hashes each with the keys "key" and "value"?

      So why would someone try to represent a hash with an array of two element hashes each with the keys "key" and "value"?

      "Represent a hash" makes no sense. I presume you mean "implement an associative array".

      Someone would do that if they wanted to preserve the order of the tuples. We've covered this multiple times already.

        So you want to have an ordered associative array by using: [{'key'=>somekey1,'value'=>somevalue1},...] because that is superior to having: $order=[somekey1,somekey2,...]; and {somekey1=>somevalue1,...} ?

        Is this because using the associative array for its primary function -- looking up values from keys -- is so much more convenient and efficient your way?