perl 求和

CU上一道题,利用perl求和

请问如何求和?

  
  
  
  
  1. a 2 
  2. a 3 
  3. a 4 
  4. b 4 
  5. b 5 
  6. c 6 
  7. d 4 
  8. d 1 

相同的字母求和。

直接上代码哦,

  
  
  
  
  1. #!/bin/env perl 
  2.  
  3. use strict "subs"; 
  4. use List::Util qw/sum/; 
  5.  
  6. my %hash = (); 
  7.  
  8. open my $file,'<','a.txt' or die "$!\n"; 
  9.  
  10. while (<$file>) { 
  11.        chomp; 
  12.        my @array = split
  13.        $hash{$array[0]} = [] unless exists $hash{$array[0]}; 
  14.        push @{$hash{$array[0]}},$array[1]; 
  15.  
  16. close $file; 
  17.  
  18. for my $str (sort keys %hash) { 
  19.     my @tmp_array = @{$hash{$str}}; 
  20.     printf "%-3s",$str; 
  21.     printf sum @tmp_array; 
  22.     printf "\n"; 

output:

  
  
  
  
  1. [root@rhel172_16_3_248 henry]# perl a.pl 
  2. a  9 
  3. b  9 
  4. c  6 
  5. d  5 

 

你可能感兴趣的:(职场,perl,求和,休闲)