数组 – 如何排序Perl中的数字?

前端之家收集整理的这篇文章主要介绍了数组 – 如何排序Perl中的数字?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
print "@_\n";
4109 4121 6823 12967 12971 14003 20186

如何在Perl中进行排序?

使用@sorted = sort(@_);给我一个字母顺序

13041 13045 14003 20186 4109 4121 6823

如何获得数字订购? Perl是否具有内置的合并排序,插入排序等功能

解决方法

您可以将自定义比较函数传递给Perl的排序例程.只需使用:
@sorted = sort { $a <=> $b } @unsorted;

排序函数代码块的形式接受自定义比较函数作为其第一个参数. {…}部分只是这个代码块(见http://perldoc.perl.org/functions/sort.html).

只要需要比较要排序的数组中的两个元素,sort将会调用自定义比较函数. sort总是通过两个值来比较为$a,$b,比较函数必须返回比较结果.在这种情况下,它只是使用运算符进行数值比较(参见http://perldoc.perl.org/perlop.html#Equality-Operators),这可能是为了这个目的而创建的:-).

Perl Cookbook”,第04章第15章(购买这本书 – 这是值得的)无耻的解决方案!

猜你在找的Perl相关文章