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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |