神奇的perl-哈希和数组(5)
1.1 第三个任务
BOSS交给小张一个文本文件,为去年销售人员季度完成的销售额,要求小张统计出前三名做为金牌销售员人选。
张三 25 9 10 60
李四 17 16 79 25
黄三 5 10 5 2
黄光 10 3 6 9
刘发 6 5 9 12
以上文件文件第一列是姓名,第二列是第一季度销售额,第三列是第二季度销售额,第四列是第三季度销售额,第五列是第四季度销售额,每列用tab分隔。
完成这个任务需要用到内嵌哈希。
内嵌哈希的遍历语法如下:
while (( $键名,$键值)=each %哈希变量名){
#对取出的键名值进行操作,其中键值是内嵌哈希的引用。
#访问内嵌哈希键值的语法为:${$键值}{$内嵌哈希的键名};
}
我们先计算每个人的全年的总销售额并输出:
#perl3-5.pl
use strict;
use warnings;
use 5.010;
my %p;
open PINFO,"<perl3-5.txt";
#从perl3-5.txt文件中读成员的姓名及城市信息
foreach my $pinfo(<PINFO>){
chomp($pinfo);
my %info;
(my $name, my $jd1,my $jd2,my $jd3,my $jd4)=split('\t',$pinfo);
$info{jd1}= $jd1;
$info{jd2}= $jd2;
$info{jd3}= $jd3;
$info{jd4}= $jd4;
$info{all}= $jd1+$jd2+$jd3+$jd4;
$p{$name}=\%info;
}
close PINFO;
while ((my $key,my $value)=each %p){
say "$key=>${$value}{all}";
}
结果如下:
刘发=>32
张三=>104
李四=>137
黄光=>28
黄三=>22
上一篇: 神奇的Perl-哈希与数组(2)
下一篇: 神奇的Perl-哈希和数组(7)
推荐阅读
-
编写计算并输出一个3*3阶矩阵对角线元素的和。 程序运行结果示例: 请输入数组元素:(3*3)↙ 1 2 3 4 5 6 7 8 9↙ ↙ 数组为:cqupt
-
ES5和ES6新的操作数组的方法(常用)
-
同一个文件在windows和linux下计算md5哈希不一致的原因及解决方法
-
编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议60~66)
-
Java学习笔记(5)--- Number类和Math 类,String类的应用,Java数组入门
-
php的扩展与嵌入--php扩展中的数组和哈希表1_PHP教程
-
php的扩展与嵌入--php扩展中的数组和哈希表2_PHP教程
-
php扩展开发笔记(5)一些数组操作相关的宏和简单示例
-
5.1 编写程序 从键盘上输入5个整数,并存放到一个数组中,然后计算所有元素的和,最大值、最小值以及 平均值
-
神奇的Perl-哈希与数组(1)