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

Really? Please recreate the original from
{ a=>[1,3,5], b=>[2,4,6], }

If you answered the following, you would be wrong.

a=>1 a=>3 a=>5 b=>2 b=>4 b=>6

As far as you know, the original order was

b=>2 b=>4 a=>1 b=>6 a=>3 a=>5

Replies are listed 'Best First'.
Re^10: the annoying keys "key" and "value"
by jabowery (Beadle) on Dec 24, 2010 at 02:57 UTC
    First of all, it doesn't make sense to use a hash when you are encoding order for obvious reasons. Secondly, the notation you've chosen conflates markup with Perl hashes so let me clarify your challenge:

    Original:

    <b>2</b> <b>4</b> <a>1</a> <b>6</b> <a>3</a> <a>5</a>
    The proper Perl structure for which would be:
    [{b=>2},{b=>4},{a=>1},{b=>6},{a=>3},{a=>5}]

      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.

        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"?
      why not objects? :)