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>; }
In reply to Sorting Numbers by Devo
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |