我正在努力处理 Perl 中的以下哈希声明:
my %xmlStructure = {
hostname => $dbHost,
username => $dbUsername,
password => $dbPassword,
dev_table => $dbTable,
octopus => {
alert_dir => $alert_dir,
broadcast_id => $broadcast_id,
system_id => $system_id,
subkey => $subkey
}
};
我一直在谷歌搜索,但我无法提出解决方案,我所做的每一次修改都会导致另一个警告或我不想要的结果。
Perl 抱怨以下文本:
Reference found where even-sized list expected at ./configurator.pl line X.
我这样做是因为我想使用该模块:
XML::Simple
为了生成具有以下结构的 XML 文件:
<settings>
<username></username>
<password></password>
<database></database>
<hostname></hostname>
<dev_table></dev_table>
<octopus>
<alert_dir></alert_dir>
<broadcast_id></broadcast_id>
<subkey></subkey>
</octopus>
</settings>
就像这样:
my $data = $xmlFile->XMLout(%xmlStructure);
warn Dumper($data);
将显示后一个 xml 示例结构。
更新:
我忘了提到我还尝试使用括号而不是花括号作为哈希引用,尽管它似乎有效,但 XML 文件没有正确写入:我最终得到以下结构:
<settings>
<dev_table>5L3IQWmNOw==</dev_table>
<hostname>gQMgO3/hvMjc</hostname>
<octopus>
<alert_dir>l</alert_dir>
<broadcast_id>l</broadcast_id>
<subkey>l</subkey>
<system_id>l</system_id>
</octopus>
<password>dZJomteHXg==</password>
<username>sjfPIQ==</username>
</settings>
这并不是完全错误的,但我不确定随着 XML 文件变大,我以后是否会遇到问题。凭据是使用 RC4 算法加密的,但我使用 base 64 编码以避免任何带有特殊字符的不当行为。谢谢