1

私はこの1つの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};
4

2 に答える 2

3

古いハッシュの(浅い)コピーを使用して、新しいハッシュへの参照を作成します。

{}hashrefです。

{ "foo", "bar", "x", "y" }キーと値のリストを使用してhashrefを定義します。

ハッシュを中に入れる{}と、リストコンテキストにあるため、キーと値のリストに変換されます。

于 2012-06-12T19:15:31.940 に答える
-1

%config_fileを$ xml_obj-> {config}に割り当てようとしている場合は、ハッシュスライスのようなことをしたいと思うでしょう。

@ {$ xml_obj-> {config}} {キー%config_file} =値%config_file;

于 2012-06-12T19:18:57.137 に答える