使用perl结束打开文件以获取经常更新的报告

时间:2012-02-03 20:34:04

标签: linux perl

我有一个守护进程需要向/ dev / loop0文件系统中的文件报告一小部分统计信息。我正在使用FileHandle来存储perl中文件句柄的引用。所以问题的一个真正的小版本看起来像这样:

#!/usr/bin/perl

use strict;
use warnings;
use FileHandle;

my $report = FileHandle->new("> /devfs/test");
print $report "Hello";
seek($report,0,0);
print $report "Hi";
$report->close();

这样做的结果将是Hillo,这是我所期待的。我想做的是能够在Hi(并且真的是Hello)之后指示该文件现在已经完成。

问题:从文件中读取时,您只能搜索文件结尾(EOF),但如何在不关闭文件的情况下指示文件结束?如果它有所不同,那么解决方案需要专门应用于Linux。

1 个答案:

答案 0 :(得分:3)

您需要truncate功能。

truncate($report, tell($report));

...会将文件截断到文件指针当前所在的位置(由tell报告)。