- 论坛徽章:
- 0
|
网上有如下代码,但是看不懂,问题如下:
1.[(split)[0,4,1],$_]代码中,
a. (split)?注:split用法见过split // @arr; split;/但是用()将它括起来是何意?
b.[0,4,1]?注:如果只取0,4,1列,那么为什么最终显示出的是5列?
c.map {[(split)[0,4,1],$_]}
map{,},逗号两侧是什么关系?
月份 电话号码 市话 长途 总话费(元)
-----------------------------------------------------------------------
200809 74889999 3.0 6.6 188
200810 74885444 4.0 1.0 200
200810 74885555 0.8 5.5 120
200810 74889888 4.0 1.0 200
要求:1,按月份(从小到大)排序。
2,按总花费(从大到小)排序。若总话费相等,则按号码(从小到大)排序
首先,按月份排序。同时,按总花费(从大到小)排序,若总话费相等,则按号码(从小到大)排序
最佳答案:
print map {$_->[-1]}
sort {$a->[0] <=> $b->[0] || $b->[1] <=> $a->[1] || $b->[2] <=> $a->[2]}
map {[(split)[0,4,1],$_]} <DATA>;
__DATA__
200809 74889999 3.0 6.6 188
200810 74885444 4.0 1.0 200
200810 74885555 0.8 5.5 120
200810 74889888 4.0 1.0 200 |
|