2014-11-23 79 views
0

嘗試將新行上的新用戶附加到文本文件中,但所有行都被修改。Perl將文本附加到新行

這是我的文本文件:

喬W,約翰,航空自衛隊

阿諾德·K,bnads,1234

瑪麗莎·G,mglav,通過

#!/usr/bin/perl 

open(FILE, "+<test.txt") or die "Couldn't open file $!"; 

     if ($user eq $fields[1]) { 
       print "Taken"; 

     elsif ($user ne $fields[1]) { 
       print FILE "$user"; 
     } 


} 

close(FILE); 

當我運行這我的文本文件更改爲

Joe W,john,asdf

測試K,bnads,1234

試驗G,mglav,通過

測試

回答

0

添加用戶到文件結尾的,只有如果沒有已被使用,

my $taken = 0; 
while (my $line = <FILE>) { 
     chomp $line; 

     # splits each line into three fields 
     my @fields = split "," , $line; 

     if ($user eq $fields[1]) { 
       print "Username is taken.\n"; 
       $taken = 1; 
       last; 
     } 

} 

if (!$taken) { 
    print FILE "$user\n"; 
} 
+0

感謝,最後是什麼;在if循環中做什麼? – user2980566 2014-11-23 22:18:46

+0

@ user2980566它跳過/退出循環的其餘部分,在這種情況下停止讀取文件。 – 2014-11-23 22:20:13

+0

我真的不喜歡你的解決方案:它打破了許多常見的*最佳做法*規則。 – Borodin 2014-11-23 23:21:34