2

我必须用 Perl 在一个文件上写多行,这是逐行编写小块而不是保存所有内容并仅访问文件句柄一次以编写所有内容的优点或缺点?

4

2 回答 2

6

Perl 在后台执行文件写入的缓冲——它保存数据直到有一个重要的块,然后一次将其全部写入。

因此,即使您多次写入文件句柄,实际写入文件的次数也是有限的。多次写入不会有任何有意义的性能损失——除非您采取措施明确规避缓冲(例如$|=1在每次写入时设置或关闭并重新打开文件)。

如果最方便的话,你应该逐行写。

于 2013-04-10T13:12:28.450 回答
1

一旦您知道要写入的数据是什么,通常会更方便地写入数据,所以这样做。重复使用文件句柄没有任何缺点。

而且,是的,如果写入的数据总量大于输出缓冲区的大小,这将节省一些内存,但是,实际上,除非您要写入数十兆字节,否则内存消耗的差异并不重要,所以以最清晰和最容易维护的方式编写它。

于 2013-04-10T13:11:39.050 回答