>this is my friend's script
>
># collect all score
> my @output = ();
> my @old_output = ();
> foreach my $list (@bugkillers) {
> my ($id,$name) = split(/,/, $list);
> my $score =
>$Bugs->getSCORE($showold,$id,$contest,$pContest,$groups);
> push(@output,"$score,$id,$name");
> }
> # print result
> foreach my $result (sort {$b <=> $a} @output) {
> my ($score,$id,$name) = split(/,/, $result);
> $html.=<<HTMLcode;
>
Hi,you have some mistakes when sorting the array.Because your array @output
include the mixed elements,not just the numbers,so you get the bad result when
sorting them with '<=>'.
I would suggest you change the style of @output as:
put @output,[$score,$id,$name];
Now you can sort them by the array's NO.1 element (which is score) via
accessing array's ref:
for (sort {$b->[0] <=> $a->[0]} @output){
...
}
Hope it helps and warning for no test.
--
Jeff Pang
NetEase AntiSpam Team
http://corp.netease.com
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>