Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: schwartzian transform and sorting on two columns

by ikegami (Patriarch)
on Sep 07, 2005 at 21:55 UTC ( [id://490011]=note: print w/replies, xml ) Need Help??


in reply to schwartzian transform and sorting on two columns

Three problems:

1) You're missing square brackets around your array indexes in the topmost sort.

2) @cols is 0-based, so the 9th and 22nd column are in $cols[8] and $cols[21] respectively. You said there are only 22 colums, so $cols[22] is wrong.

3) Your sorts are in the wrong order. The higher precedence one should be at the top to make it execute last.

Finally, borisz is right. It'll be faster if you combine your two sorts into one.

@sortedarry = map { $_ ->[0] } sort { $a->[1] cmp $b->[1] || $a->[2] <=> $b->[2] } map { my @cols = split /\t/; [ $_, $cols[8], $cols[21] ] } @foo; print "$_\n" foreach @sortedarry;

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://490011]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (5)
As of 2024-04-19 03:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found