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

阅读更多
声明:本神奇的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文件中读成员的姓名及城市信息

foreach my $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)