首页 > 代码库 > perl的魅力
perl的魅力
网上看到一道题,内容如下。 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
本文出自 “BSDerの-专注于开源领域” 博客,请务必保留此出处http://hellosa.blog.51cto.com/2698675/1554779
perl的魅力
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。