用Perl统计一组数字中最大的N个

前端之家收集整理的这篇文章主要介绍了用Perl统计一组数字中最大的N个前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

简单的一个小脚本,用Perl来统计一堆输入数字中最大的N个,N可任意指定。这是本人学习Perl道路上练习用的小程序,各位大神不要鄙视

 

 
 
  1. my $k = $ARGV[1]; 
  2.  
  3. my $input = $ARGV[0]; 
  4. open INPUT,$input; 
  5.  
  6. while(<INPUT>){ 
  7.     my $line = $_; 
  8.     my @fields = split /,/,$line; 
  9.     foreach(@fields){ 
  10.         my $claim = $_; 
  11.         if($claim =~ /\d/){ 
  12.             if(@topK < $k){ 
  13.                 push @topK,$claim; 
  14.             } else { 
  15.                 @topK = sort {$a<=>$b} @topK; 
  16.                 my $first = shift @topK; 
  17.                 if($claim > $first){ 
  18.                     unshift @topK,$claim; 
  19.                 } else { 
  20.                     unshift @topK,$first
  21.                 } 
  22.             } 
  23.         } 
  24.     } 
  25. close INPUT; 
  26. print "@topK"

输入数据文件格式为

 

 
 
  1. 2,32,3,45,6,58 

猜你在找的Perl相关文章