使用YAML :: XS控制hashref的顺序

时间:2015-01-26 20:41:35

标签: perl yaml libyaml

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

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

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

1 个答案:

答案 0 :(得分:3)

docs可以看出,没有选项可以配置哈希的顺序。通过查看dump_node中的dump_hashLibYAML/perl_libyaml.c,可以进一步确认这一点。