perl的魅力

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
网上看到一道题,内容如下。
 
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号,计算时间之和

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/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

运行结果:

1
2
3
123456  23      1000
345678  21      4679
456789  45      4532


本文转自dongfang_09859 51CTO博客,原文链接:http://blog.51cto.com/hellosa/1554779,如需转载请自行联系原作者
相关文章
|
弹性计算 JavaScript 前端开发
ROS CDK魔法书:建立你的游戏王国(JavaScript篇)
本文介绍了如何利用阿里云资源编排服务(ROS)的云开发套件(CDK)将2048小游戏部署到云端。ROS CDK允许开发者使用编程语言定义和管理云资源,简化部署流程。通过部署示例,展示了从环境准备、依赖安装到资源栈的创建与删除全过程。借助ECS等云服务,实现游戏快速上线,使更多玩家享受游戏乐趣。
ROS CDK魔法书:建立你的游戏王国(JavaScript篇)
|
消息中间件 存储 Kafka
如何保证MQ中消息的可靠性传输?
如何保证MQ中消息的可靠性传输?
236 1
|
Java 测试技术 程序员
我可能是个假程序员!50个程序猿笑话程序猿最烦两件事
程序员最烦的是什么?50个程序猿笑话程序猿最烦两件事。没错,就是这2件事情……梁健也烦! 1、程序猿最烦两件事,第一件事是别人要他给自己的代码写文档,第二件呢?是别人的程序没有留下文档。
2390 0
|
Java 关系型数据库 网络安全
|
4天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
300 116
|
19天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
7天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
479 44
Meta SAM3开源:让图像分割,听懂你的话