gpt4 book ai didi

perl - 如果速度不是问题,那么在循环中 open() 和 close() 是否不好?

转载 作者:行者123 更新时间:2023-12-01 07:05:36 24 4
gpt4 key购买 nike

我修改了另一个程序员的 Perl 脚本,我用来使它输出日志。 perl 脚本通过文件,对于它通过的每个文件,我打开()日志,写入/打印到它,然后关闭()它。这种情况经常发生。我这样做是为了确保在所说的 Perl 脚本挂断时我不会丢失任何数据(它最终开始这样做,但我的知识不够,无法修复它)。因此,除了在该循环中重复 open() 和 close() 之外,我没有好的替代方法。

我的主要问题是:Perl 脚本供个人使用,因此速度降低不是问题。但是,这种可能不正确使用 open/close 的方法还会带来其他坏事吗?这听起来像是一个愚蠢的问题,但这是否可能会更快地磨损我的硬盘,或者我误解了文件处理的工作原理?

提前致谢。

最佳答案

正如其他人所提到的,除了性能(以及可以说是代码的清洁度)之外,这里没有其他问题。

但是,如果您只是担心“如果 Perl 挂了会丢失数据”,只需在文件句柄上设置自动刷新:

use IO::Handle;
open HANDLE, '>log.txt'
or die "Unable to open log.txt for writing: $!";
HANDLE->autoflush(1);

现在每 printHANDLE会自动刷新。无需一直打开和关闭。

perldoc man page 中搜索“autoflush”想要查询更多的信息。

关于perl - 如果速度不是问题,那么在循环中 open() 和 close() 是否不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6659070/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com