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

"That doesn't maintain order"

The array has the order.

  • Comment on Re^8: the annoying keys "key" and "value"

Replies are listed 'Best First'.
Re^9: the annoying keys "key" and "value"
by ikegami (Patriarch) on Dec 24, 2010 at 02:43 UTC
    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
      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.

        why not objects? :)