我使用 Perl 和
YAML::XS
来编写 YAML 输出。具体来说,此 YAML 输出是其他 YAML 文件内容的列表。我这样做,例如,像这样:
use YAML::XS qw(LoadFile DumpFile);
my @yaml_files = qw(foo.yaml bar.yaml quux.yaml);
DumpFile("output.yaml", [
map { LoadFile($_) } @yaml_files
]);
我的理解是,这会将每个输入 YAML 文件加载到内存中以创建列表,然后最终将输出写入磁盘。一般来说,这是有道理的,但在这种情况下,有机会一次流式传输一个列表项的输出。如果确实可能的话,如何用
YAML::XS
来做到这一点?
备注:
DumpFile
——但这依赖于我输出正确的YAML。在这种情况下相对简单,但我宁愿遵循库代码。YAML::XS
,但这超出了标准库的范围。使用 YAML::XS 无法完成此操作。