hashref 的控制顺序 YAML::XS

Control order of hashref with YAML::XS

我正在使用 YAML::XS 库将数据结构转储到 YAML:

foo => {
    bar => [
        {...},
        {...},
    ],
    baz => [
        {...},
        {...},
    ], 
    ...
}

似乎 YAML::XS 的默认行为是在转储之前对键进行排序,但这不是我想要的。人们将不得不阅读和编辑该脚本的输出,因此可读性是一个问题。有没有办法控制密钥被转储出来的顺序,以便 foo->{baz}foo->{bar} 之前出现?

docs可以看出,没有配置哈希顺序的选项。通过查看 LibYAML/perl_libyaml.c 中的 dump_nodedump_hash 进一步证实了这一点。