if ($a !~ /^\d+$/) {
return 1;
}
elsif ($b !~ /^\d+$/) {
return -1;
}
else {
return $a <=> $b;
}
} @a;
2011/9/19 Fangyuan <chengfangyuan2008@gmail.com>:
> 大家好,请教一个自定义sort函数的问题。
> 有一个数组,@a = (1..20, "10+"),我想对这个数组排序,排序的规则是:1)数字优先, "10+"排在数字后面;2)数字按从小到大
> 我自己写了一个代码,运行没有返回我想要的结果。寻求高手指点一下,谢谢!
> my @a = (0..20, "10+");
> my @b = sort{
> if(m/^\d+$/){
> return $a <=> $b;
> }
> else{
> return -1;
> }
> } @a;
> print join(",", @b), "\n";
>
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
> 要在网络上查看此讨论,请访问 https://groups.google.com/d/msg/perlchina/-/Jceaq2ltgPQJ。
> 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
> 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>
--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
没有评论:
发表评论