perl脚本练习

题目: 

 
   
  1. 12 34 56 78  
  2. 24 65 87 90  
  3. 76 11 67 87  
  4. 100 89 78 99 

求出文本中数字的最大、小值 

我看很多的朋友都用shell的awk实现了,但本人对awk不是很了解,试着用perl简单的写了一下,也能实现

code:

 
   
  1. #!/usr/bin/perl -w 
  2.  
  3. use strict; 
  4. use List::Util qw(max min); 
  5.  
  6. open my $file,'<','e.txt' or die "$!\n"; 
  7.  
  8. my @array = map {split /\s+/} <$file>
  9.  
  10. close $file; 
  11.  
  12. print min(@array),"\n"; 
  13. print max(@array),"\n";

第8行代码的也可以这样省略写

 
   
  1. my @array = map {split} <$file>

或者这样写

 
   
  1. my @array = map split,<$file>

抓图看一下:

output:

第二种方法:

 
   
  1. #!/usr/bin/perl -w 
  2.  
  3. use strict; 
  4.  
  5. my @array = (); 
  6.  
  7. open FILE,'<','e.txt' or die "$!\n"
  8.  
  9. while () { 
  10.        chomp; 
  11.        push @array,split; 
  12.  
  13. close FILE; 
  14.  
  15. @array = sort {$a<=>$b} @array
  16.  
  17. print "Min:\n"
  18. print "\t$array[0]\n"
  19. print "Max:\n"
  20. print "\t$array[$#array]\n"

图示


本文转自dongfang_09859 51CTO博客,原文链接:http://blog.51cto.com/hellosa/535076,如需转载请自行联系原作者

你可能感兴趣的:(perl脚本练习)