>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>