my @a = (0..20, "10+", 21 .. 25);
@a = reverse(@a);
my @b = sort{
if($a =~ /^\d+$/ and $b =~ /^\d+$/){
return $a <=> $b;
} elsif ($a =~ /^\d+$/) {
return -1;
} elsif ($b =~ /^\d+$/) {
return 1;
} else {
return $a cmp $b;
}
} @a;
print join(",", @b), "\n";
if you have
use warnings;
it will tell you that
Use of uninitialized value $_ in pattern match (m//)
then you know there isn't $_ in sort {}
Thanks
2011/9/19 Fangyuan <chengfan...@gmail.com>:
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
> 要在网络上查看此讨论,请访问 https://groups.google.com/d/msg/perlchina/-/Jceaq2ltgPQJ。
> 要向此网上论坛发帖,请发送电子邮件至 perl...@googlegroups.com。
> 要取消订阅此网上论坛,请发送电子邮件至 perlchina+...@googlegroups.com。
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>
--
Fayland Lam // http://www.fayland.org/
2011/9/19 Fangyuan <chengfan...@gmail.com>: