首先已经阅读下面列出的文章,以了解使用核心perl编写文件的用户。
- http://perlmaven.com/writing-to-files-with-perl
- http://perlmaven.com/appending-to-files
我怀疑。在我的情况下,我需要写一个日志文件,但必须是一个轻型日志,我的意思是50行文本。
因此,每次交互都必须擦除第一行并写入日志的底部。
您使用什么参数来实现这一目标?
我的想法是从日志中获取所有数据并输入一些变量,如数组并删除第一个值,然后使用open(FILEHANDLE,">filename");
再次写入日志。
使用唯一的核心工具没有perl方法来完成这项工作吗?
感谢。
答案 0 :(得分:1)
这是非常低效的,因为正确的想法 - 唯一的方法是重写日志文件,而不是第一行。
如果你还在做什么,那么tail +2
就可以了。
但我建议每次添加一行日志时重写日志文件的效率都非常低,而且你做得更好的是写多个 - 并删除' old'的。
E.g:
stat
文件获取大小,因为您正在阅读元数据,而不必阅读文件内容。 如果失败,您可以按照建议的方式重写日志文件。请注意,如果您这样做,那么在日志为空/零长度的情况下,这将是一个短暂的时期。而且,您永远无法在日志上运行tail -f
。