in reply to sorting based on a list

my @indicies = sort { $list[$a] cmp $list[$b] } 0..$#list; my @rearranged = @list2[@indicies];

-- Randal L. Schwartz, Perl hacker


update: Hold on. I solved the problem he stated. Not the problem he had. OK, nothing cannot be solved without a bit of indirection:
my @indicies = sort { $list[$a] cmp $list[$b] } 0..$#list; my @rearranged; @rearranged[@indicies] = sort @list2;
There. Make a sorted @list2 be disordered in the same way that @list is.

Also see my other solution.

Replies are listed 'Best First'.
Re: Re: sorting based on a list
by suaveant (Parson) on May 09, 2001 at 18:43 UTC
    Umm.. this returns zulu xray bravo alpha yankee charlie

    that's not ordered right...

    Update Yup, all better now
                    - Ant