加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl中的sort函数

发布时间:2020-12-15 23:31:52 所属栏目:大数据 来源:网络整理
导读: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 是吗? 如何将上述结果作为输出?
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;

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读