简单的一个小脚本,用Perl来统计一堆输入数字中最大的N个,N可任意指定。这是本人学习Perl道路上练习用的小程序,各位大神不要鄙视
- my $k = $ARGV[1];
- my $input = $ARGV[0];
- open INPUT,$input;
- while(<INPUT>){
- my $line = $_;
- my @fields = split /,/,$line;
- foreach(@fields){
- my $claim = $_;
- if($claim =~ /\d/){
- if(@topK < $k){
- push @topK,$claim;
- } else {
- @topK = sort {$a<=>$b} @topK;
- my $first = shift @topK;
- if($claim > $first){
- unshift @topK,$claim;
- } else {
- unshift @topK,$first;
- }
- }
- }
- }
- }
- close INPUT;
- print "@topK";
输入数据文件格式为
- 2,32,3,45,6,58