微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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 (<FILE>) { 
  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"

图示

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐