我有一个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