Perl:在附加模式下清除文件内容和打开文件

kai*_*h19 14 perl

我需要在Perl中以append模式打开一个文件,但是在打开文件之前我需要删除所有数据并删除新数据.

我将逐行输入数据,因此在输入第一行之前,我需要删除所有以前的数据.

请帮忙.

TLP*_*TLP 17

我认为你对Perl中的"追加"含义感到困惑.你所描述的是打开一个文件并截断​​它,即:

open my $fh, '>', $file;
Run Code Online (Sandbox Code Playgroud)

这将删除内容$file并打开具有相同名称的新文件.

使用开放的追加的原因是当你有,你文件希望覆盖.即,>和之间的区别>>仅仅是前者截断现有文件并开始在文件的开头写入,后者跳到现有文件的末尾并开始在那里写.

文档在这里


dax*_*xim 6

truncate

  • 我不知道,我没有弥补疯狂的限制.而且,今天我有心情以面子回答问题. (3认同)
  • 当我们应该使用flock进行原子操作时,以'>'开头的情况更糟。为什么?因为我们无法聚集已关闭的文件。截断是最好的选择。我们以“ + <”打开文件,然后进行植绒,测试并决定是否删除内容。 (2认同)