我正在努力了解这个perl模块是如何工作的,它被称为XML :: Smart。除了与模块没有多大关系的一件事之外,大部分都很容易理解。
我想要做的是将我的脚本中的哈希值复制到XML :: Smart模块中以进行处理。经过一些“禁止”后,我设法让它做我想做的事。问题是我不知道我到底做了什么。如果有人能够提供一个线索,说明为什么这种方法在英语中意味着什么就会很棒。
当我在翻阅我自己的模块时,我看到了这样的事情,这意味着它与制作课程有关,不确定它是否被称为或者它有类似的东西。
这是我的代码;
#!/usr/bin/perl
use strict;
use warnings;
use XML::Smart;
my $xml_obj = XML::Smart->new();
my %config_file = (
"server01" => {
"connection" => {
"address" => "10.0.0.4",
"port" => "22",
}, "authentication" => {
"username" => "admin",
"password" => "password",
},
},
);
$xml_obj->{config} = {%config_file};
答案 0 :(得分:3)
它使用旧哈希的(浅)副本创建对新哈希的引用。
{}
是一个hashref。
{ "foo", "bar", "x", "y" }
使用键和值列表定义hashref。
如果你在{}
中放入一个哈希,它就在列表上下文中,那么它就变成了一个键和值列表。
答案 1 :(得分:-1)
如果您尝试将%config_file分配给$ xml_obj-> {config} 你会想要做一些像哈希切片的事情。
@ {$ xml_obj-> {config}} {keys%config_file} = values%config_file;