【发布时间】:2018-05-06 02:44:05
【问题描述】:
我正在尝试从数据结构中打印出 YAML 文档,特别是哈希数组,我认为这是 YAML::dump 返回的内容。这是我用来构建 YAML 文档并对其进行序列化的 Perl 代码。
my @tagobj_header_table =
{
core => {
type => $tagobj_type,
size => $tagobj_size,
blob => $tagobj_blob,
},
text => {
lines => {
{
offset => 0,
length => 1
},
{
offset => 1,
length => 5,
},
{
offset => 6,
length => 7,
},
{
offset => 13,
length => 13,
},
{
offset => 26,
length => 1,
}
}
}
};
my $dumper = YAML::Dumper->new;
my $tagobj_contents = $dumper->dump(@tagobj_header_table);
print $tagobj_contents;
这就是我希望 YAML 文档的样子,其中包含一些 Perl 字符串替换。
---
core:
type: $tagobj_type
size: $tagobj_size
blob: $tagobj_blob
text:
lines:
- offset: 0
length: 1
- offset: 1
length: 5
- offset: 6
length: 7
- offset: 13
length: 13
- offset: 26
length: 1
以下是控制台的输出。
---
core:
blob: build\content\objects\36d80951814b5f08c7ba34cd7a5459b4c212ee6200ce247ac2a13d24b2fc0d57
size: 31
type: blob/text
text:
lines:
HASH(0x4d1b840):
length: 13
offset: 13
HASH(0x4d1df38):
length: 5
offset: 1
HASH(0x4d1eee8): ~
【问题讨论】:
-
.text.lines 是您数据结构中的哈希 (
{}),但键是什么?价值观是什么?您显然想要一个数组 ([])。 -
让它成为一个答案,这样我就可以接受它@mwp