perl面試題解析

數據分析

檢測系統某一目錄下是否存在文件a.txt,有的話,則mv成新的文件,沒有,則創建它,並向文件中輸入以下數字:

1       0       1
2       1       1
3       0       1 
4       1       1 
5       0       1 
6       1       1 
7       0       1 
8       1       1

 

面試中,對這個題目產生了歧義,一時緊張,竟然不知從何下手。回來仔細一想,so easy!

1)出題者的本意解法

#!/bin/env perl  
use strict; 

if (-e 'a.txt') {   
 system "mv a.txt a.txt.old"; 
 }
  else {    
  system "touch a.txt"; }  
  
  open my $file,'>>','a.txt' or die "$!\n";  
  for(my $i=1;$i<9;$i++){   
     if ($i % 2) {      
        print $file "$i\t0\t1\n";     }    
         else {         
         print $file "$i\t1\t1\n";   
           } 
}

2)產生歧義的解法

#!/bin/env perl  
use strict;  

if (-e 'a.txt') {   
    system "mv a.txt a.txt.old"; 
}
 else {    system "touch a.txt"; 
 }  
 
 open my $file,'>>','a.txt' or die "$!\n"; 
 
  print $file <<'EOF'; 
  1       0       1 
  2       1       1 
  3       0       1 
  4       1       1 
  5       0       1 
  6       1       1 
  7       0       1 
  8       1       1 
  EOF  
  
  close $file;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章