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

perl的魅力

发布时间:2020-12-15 23:53:31 所属栏目:大数据 来源:网络整理
导读:网上看到一道题,内容如下。123456??????23???????????1000234567??????34???????????1234345678??????21???????????1234456789??????45???????????4532234567??????34???????????1233234567??????34???????????1234345678??????21???????????3445其中第一列
网上看到一道题,内容如下。

123456??????23???????????1000
234567??????34???????????1234
345678??????21???????????1234
456789??????45???????????4532
234567??????34???????????1233
234567??????34???????????1234
345678??????21???????????3445

其中第一列为ID号??第二列为级别???第三列为时间

题目要求,写一个脚本处理文本,处理结果为

第一列显示ID
第二列过滤级别<30或者级别>40
第三列显示内容为,若为相同的ID号,计算时间之和

总觉得这个题目有点问题,数据有点不对应,不多说了,直接上代码

#!/bin/env?perl
#?-*-?coding:?utf-8?-*-

use?strict;

my?%hash;

while?(<DATA>)?{
???????chomp;
???????next?if?/^$|^#/;
???????my?@array?=?split;
???????if?($array[1]?<?30?||?$array[1]?>?40)?{
???????????push?@{$hash{"$array[0]t$array[1]t"}},$array[2];
???????}
}

for?my?$num?(sort?keys?%hash)?{
????my?@a?=?@{$hash{$num}};
????printf?"%d",$num;
????printf?sum(@a);
????printf?"n";
}

sub?sum?{
????my?($ref)?=?@_;
????my?$i?=?0;
????for?(@$ref)?{
?????????$i?+=?$_;
????}
????return?$i;
}

__DATA__
123456??????23???????????1000
234567??????34???????????1234
345678??????21???????????1234
456789??????45???????????4532
234567??????34???????????1233
234567??????34???????????1234
345678??????21???????????3445

运行结果:

123456??23??????1000
345678??21??????4679
456789??45??????4532

(编辑:李大同)

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

    推荐文章
      热点阅读