in reply to Re: Re: Sorting arrays based on a single element
in thread Sorting arrays based on a single element

Okay. The problem is, that whilst you are pushing your 3 value onto the array with a single statement, the effect is the same as if you had pushed them each individually. So after you have push two sets of 3 onto the array, you end up with an array that looks like this

@DayAway => ( id1, x1, key1, id2, x2, key2 );

In other words, 6 discrete values, with no effective grouping between them. So when you sort the array, you'll be comparing apples with oranges, so to speak.

Try modifying the push statements so that you are pushing an single entity (an anonymous array) that contains the 3 values each time. E.g.

push (@DayAway, [$id, $x, $Key] );

Then the sort strategies offered above will work for you.

I would suggest that you try dumping the array's contents (see Data::Dumper) before and after you make this change to see the difference it makes, and then review perldsc.

Hope it helps.


Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller