設定ファイルを変更しようとしています。
@buffer
正規表現の一致に応じて、最初にそれをに読み込みます。変更されたバッファはディスクに書き戻され、ファイルが小さくなった場合は切り捨てが行われます。
残念ながら、これは機能せず、すでにでクラッシュしfseek
ますが、私が言える限り、fseekの使用法はperldocに準拠しています。
open (my $file, "+<", "somefilethatexists.txt");
flock ($file, LOCK_EX);
foreach my $line (<$file>) {
if ($line =~ m/(something)*/) {
push (@buffer, $line);
}
}
print "A\n";
seek($file,0,0); #seek to the beginning, we read some data already
print "B\n"; # never appears
write($file, join('\n',@buffer)); #write new data
truncate($file, tell($file)); #get rid of everything beyond the just written data
flock($file, LOCK_UN);
close ($file);