我有一個Perl文件。用戶打開文件,讀取數據並在網格中顯示數據。用戶編輯它並將其保存迴文件。在Perl中羊羣不工作
我想使用flock,以便當用戶讀取文件時,文件被鎖定。我嘗試了下面的代碼,但它沒有奏效。
參考此帖子的接受答案。 How do I lock a file in Perl?
use Fcntl ':flock'; #added this at the start
$filename= dsfs.com/folder1/test.txt; #location of my file
open(my $fh, '<', $filename) or die $!; #file open
flock($fh, LOCK_EX) or die "Could not lock '$file' - $!"; #inserted flock before reading starts so that no other user can use this file
#reading of file starts here
#once read, user saves file.
close($fh) or die "Could not write '$file' - $!"; #release lock after user writes.
我想這是周圍沒有任何條件,比賽正常操作,但對於我,我這個多年平均值的工作我不知道,如果perl腳本能夠檢測羊羣與否。
出於測試目的,我嘗試在我的寫入和保存功能完成之前打開文件。當我嘗試在保存完成之前打開相同的文件時,這意味着該鎖尚未釋放。在這種情況下,如果我在後端打開文件並編輯文件,我仍然可以保存更改。在實際情況下,一旦文件被鎖定,它不應該編輯任何東西。
任何人都可以請建議我任何故障排除這或我的程序使用羊羣不正確?
不要使用裸字符串的文件名;用引號括起來。不要使用'使用警告';'嚴格使用';'這會告訴你這樣做。 –
這真的是你正在運行的代碼嗎?你應該會得到一個語法錯誤。 – ThisSuitIsBlackNot
@ ThisSuitIsBlackNot-我註釋了使用嚴格。多數民衆贊成它沒有給我任何錯誤的上述代碼我張貼。 – Ayesha