【发布时间】:2016-12-15 14:36:58
【问题描述】:
我尝试了许多不同版本的使用 push 和 splice,但似乎无法根据需要组合两个哈希。尝试将第二个哈希值插入到“Item”数组中的第一个哈希值中:
(
ItemData => { Item => { ItemNum => 2, PriceList => "25.00", UOM => " " } },
)
(
Alternate => {
Description => "OIL FILTER",
InFile => "Y",
MfgCode => "FRA",
QtyAvailable => 29,
Stocked => "Y",
},
)
我需要将第二个“Alternate”哈希插入到第一个哈希的“Item”数组中以获得此结果:
(
ItemData => {
Item => {
Alternate => {
Description => "OIL FILTER",
InFile => "Y",
MfgCode => "FRA",
QtyAvailable => 29,
Stocked => "Y",
},
ItemNum => 2,
PriceList => "25.00",
UOM => " ",
},
},
)
有人可以建议我如何做到这一点吗?
【问题讨论】:
-
这看起来很像 XML。是吗?
-
我也想说@Sobrique。可能是 XML::Simple。
-
好的。我的建议是回溯,不要那样做。
XML::Simple是一条通往痛苦的道路。如果您发布XML,我可以向您展示一个示例,该示例将它们拼接在一起,而不会在来回转换中固有的数据丢失。 -
如果可以避免的话,永远不要使用
XML::Simple,即使你不能,你也应该索要危险金。模块自己的文档说“你真的不想在新代码中使用这个模块”和“不鼓励在新代码中使用这个模块”。请阅读Why is XML::Simple "Discouraged"? -
虽然
XML::Simple在读取 XML 文档时效果不佳,但使用XMLout创建XML 文档时要差得多。由于这本质上是您的要求,我相信您应该改用XML::Twig。 API 很广泛,但是 XML 数据并不像XML::Simple试图弄清的那么简单。还有XML::LibXML。不太平易近人,但XML::Simple的作者写了Perl XML::LibXML by Example,有助于顺利转移。