我正在为sitemap编写XML文件,Google表示该文件不能超过10MB。
我想知道是否有办法写入文件,直到满足某个文件大小,然后关闭它并打开一个新文件。
我拥有它,一旦它达到一定数量的条目,它将关闭文件并打开一个新文件。
我正在使用Number::Bytes::Human
尝试获取文件大小而没有运气。
答案 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文档必须只包含一个根元素