XML::Simple を使用して XML ファイルを解析し、それを使用して非常に特殊な形式で出力ファイルを書きたいと考えています。したがって、出力順序は重要です。
私が理解しているように、XML が perl hashref に変換されると、順序が失われます (perl ハッシュには順序がないため)。しかし、配列が XML::Simple で使用される場合はどうでしょう。
例えば:
<?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<price>10.0</price>
</cd>
<cd>
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<price>9.99</price>
</cd>
<cd>
<title>Hello</title>
<artist>Say Hello</artist>
<price>0001</price>
</cd>
</catalog>
次のようなデータ構造が得られます。
$VAR1 = {
'cd' => [
{
'artist' => 'Bonnie Tyler',
'price' => '10.0',
'title' => 'Hide your heart'
},
{
'artist' => 'Dolly Parton',
'price' => '9.99',
'title' => 'Greatest Hits'
},
{
'artist' => 'Say Hello',
'price' => '0001',
'title' => 'Hello'
}
]
};
3 つの 'cd' 構造体が配列に挿入されるため、それらの順序は常に入力ファイルと同じになりますか?