Perl中的sort函数

前端之家收集整理的这篇文章主要介绍了Perl中的sort函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
use warnings;

my @a = (1,11,3,5,21,9,10);

my @b = sort @a;

print "@b";

Output: 1 10 11 21 3 5 9

键盘链接http://codepad.org/Fvhcf3eP

我猜sort函数没有将数组的元素作为整数.这就是为什么输出不是:

1 3 5 9 10 11 21

是吗?

如何将上述结果作为输出

解决方法

Perl sort函数的默认实现是将值排序为字符串.要执行数字排序:

my @a = sort {$a <=> $b} @b;

链接页面显示了如何以不相反的顺序(降序)排序不区分大小写的其他示例,依此类推.

您可以创建显式子例程以防止重复:

sub byord { $a <=> $b };
...
@a = sort byord @b;

这在功能上等同于使用匿名子例程的第一个示例.

猜你在找的Perl相关文章