欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

神奇的perl-哈希和数组(5)

程序员文章站 2022-04-29 16:23:55
...
声明:本神奇的Perl系列为刘兴(http://deepfuture.iteye.com/)原创,未经笔者授权,任何人和机构不能转载

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