Devo has asked for the wisdom of the Perl Monks concerning the following question:
Thanks to everyone who helped me with my previous post on sorting. In response, I would like to add some more information and clarify some of the variables that are being used.
As stated in my last post, I want to sort some numbers in descending
order, but can only get this code to sort them ascending.
I apologize for the vagueness, but this is not my code...I'm just picking
up on a job that another programmer left.
Thanks in advance for any help that can be provided.
$sortby="number"; $sort=2;
foreach $line (sort(sort_func &read_file("DATAFILE"))) close(DATAFILE); sub sort_func { #local($a, $b) = @_; my(@a_items) = split("\t", $a,$datafields); my(@b_items) = split("\t", $b, $datafields); my($item_no) = $sort; # the number of the field to # sort on. my($result) = 0; # default is equal if ($sortby eq "string"){ $result = $a_items[$item_no] cmp $b_items[$item_no]; } elsif ($sortby eq "number"){ $result = $b_items[$item_no] <=> $a_items[$item_no];} # for nu +mbers return($result); } sub read_file { my ($filevar) = @_; <$filevar>; }
|
---|
Replies are listed 'Best First'. | |
---|---|
(jeffa) Re: Sorting Numbers
by jeffa (Bishop) on Nov 06, 2001 at 07:13 UTC | |
by Devo (Initiate) on Nov 06, 2001 at 10:36 UTC | |
by educated_foo (Vicar) on Nov 06, 2001 at 11:07 UTC | |
by pixel (Scribe) on Nov 06, 2001 at 13:56 UTC | |
by educated_foo (Vicar) on Nov 07, 2001 at 05:16 UTC | |
by mkmcconn (Chaplain) on Nov 07, 2001 at 20:04 UTC |
Back to
Seekers of Perl Wisdom