perl

sort <=>and cmp

Perlhas two operators <=> andcmp,

which are veryuseful when wishing to sort arrays. $a<=> $b returns -1 if $ais numerically lesser than $b, 1 if it's greater, and zeroif they are equal.

cmp does the same for string comparison.For instance the previous example could be re-writtenas:

[liuguiyou@localhost perl]$ cat sort.pl #!/usr/bin/perl use strict; use warnings; my @array = (100,5,8,92,-7,34,29,58,8,10,24); my @sorted_array = sort { $a <=> $b } @array; print join("<", @sorted_array), "\n"; [liuguiyou@localhost perl]$ ./sort.pl -7<5<8<8<10<24<29<34<58<92<100  

Muchmore civil, isn't it? The following example, sorts an array ofstrings in reverse:

[liuguiyou@localhost perl]$ cat sort_chara.pl

#!/usr/bin/perl



use strict;

use warnings;



my @input = (

    "Hello World!",

    "You is all I need.",

    "To be or not to be",

    "There's more than one way to do it.",

    "Absolutely Fabulous",

    "Ci vis pacem, para belum",

    "Give me liberty or give me death.",

    "Linux - Because software problems should not cost money",

);



# Do a case-insensitive sort

my @sorted = sort { lc($a) cmp lc($b); } @input;



print join("\n", @sorted), "\n";





[liuguiyou@localhost perl]$ ./sort_chara.pl

Absolutely Fabulous

Ci vis pacem, para belum

Give me liberty or give me death.

Hello World!

Linux - Because software problems should not cost money

There's more than one way to do it.

To be or not to be

You is all I need.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值