写入文件直到达到一定大小

时间:2017-01-06 18:24:29

标签: perl file

我正在为sitemap编写XML文件,Google表示该文件不能超过10MB。

我想知道是否有办法写入文件,直到满足某个文件大小,然后关闭它并打开一个新文件。

我拥有它,一旦它达到一定数量的条目,它将关闭文件并打开一个新文件。

我正在使用Number::Bytes::Human尝试获取文件大小而没有运气。

1 个答案:

答案 0 :(得分:4)

您可以在文件句柄上使用tell方法来建立将写入下一个数据的偏移量。该方法由IO::Seekable提供,其由IO::File子类化。自Perl v5.14起,IO::File按需自动加载,因此无需明确use

这是一个写入文件的示例程序,直到它超过10MB

use strict;
use warnings 'all';
use autodie;
use feature 'say';

open my $fh, '>', '10MB.txt';

say $fh->tell;

print $fh '1234567890' while $fh->tell < 10 * 1024 * 1024;

say $fh->tell;

close $fh;

输出

0
10485760

请注意,在传输XML数据后,您必须小心重新组装XML数据,因为XML文档必须只包含一个根元素