BACKGROUND: I'm using XML::Compile::Schema to read multiple xsd files and generate a hash of the contents with the
function.
$VAR1 = {
'attrs' => [],
...
'elems' => [
bless( {
'struct' => [...],
'elems' => [
{
...
},
{
'attrs' => [],
'elems' => [
bless( {
'
+struct' => [...],
'
+elems' => [
+ {
+ ...
+ },
+ {
+ 'attrs' => [],
+ 'elems' => [
+ bless( {
+ 'struct' => [
+ ...
+ ],
+ 'elems' => [
+ {
+ ...
+ },
+ {
+ 'attrs' => [],
+ 'elems' => [
+ bless
+( {
+
+ 'struct' => [
+
+ ...,
+
+ 'elems' => [
+
+ {
+
+ ...
+
+ },
+
+ {
+
+ ...
+
+ },
+
+ {
+
+ ...
+
+ }
+
+ ],
+
+ 'tag' => 'sequence'
+
+ }, 'BLOCK' )
+ ],
+ ...
+ },
+ {
+ 'attrs' => [],
+ 'elems' => [
+ bless
+( {
+
+ ...,
+
+ 'elems' => [
+
+ {
+
+ 'attrs' => [],
+
+ 'elems' => [
+
+ bless( {
+
+ 'struct' => [...],
+
+ 'elems' => [
+
+ {...},
+
+ {...}
+
+ ],
+
+ 'tag' => 'sequence'
+
+ }, 'BLOCK' )
+
+ ],
+
+ ...
+
+ },
+
+ {
+
+ ...
+
+ }
+
+ ],
+
+ 'tag' => 'sequence'
+
+ }, 'BLOCK' )
+ ],
+ ...
+ },
+ {
+ 'attrs' => [],
+ 'elems' => [
+ bless
+( {
+
+ 'struct' => [
+
+ ...
+
+ ],
+
+ 'elems' => [
+
+ {
+
+ ...
+ },
+
+ {
+
+ ...
+
+ },
+
+ {
+
+ ...
+
+ }
+
+ ],
+
+ 'tag' => 'sequence'
+
+ }, 'BLOCK' )
+ ],
+ ...
+ },
+ {
+ 'attrs' => [],
+ 'elems' => [
+ bless
+( {
+
+ 'struct' => [
+
+ ...
+
+ ],
+
+ 'elems' => [
+
+ {
+
+ ...
+
+ }
+
+ ],
+
+ 'tag' => 'sequence'
+
+ }, 'BLOCK' )
+ ],
+ ...
+ },
+ {
+ ...
+ }
+ ],
+ 'tag' => 'sequence'
+ }, 'BLOCK' )
+ ],
+ ...
+ }
+ ],
'
+tag' => 'sequence'
},
+'BLOCK' )
],
...
},
{
'attrs' => [],
'elems' => [
bless( {
'
+struct' => [
+ ...
+ ],
'
+elems' => [
+ {
+ 'attrs' => [],
+ 'elems' => [
+ bless( {
+ 'struct' => [
+ ...
+ ],
+ 'elems' => [
+ {
+ ...
+ },
+ {
+ ...
+ },
+ {
+ ...
+ },
+ {
+ 'attrs' => [],
+ 'elems' => [
+ bless
+( {
+
+ 'struct' => [... ],
+
+ 'elems' => [
+
+ {
+
+ ...
+
+ },
+
+ {
+
+ ...
+
+ },
+
+ {
+
+ ...
+
+ },
+
+ {
+
+ ...
+
+ },
+
+ {
+
+ ...
}
+
+ ],
+
+ 'tag' => 'sequence'
+
+ }, 'BLOCK' )
+ ],
+
+ },
+ {
+ 'attrs' => [],
+ 'elems' => [
+ bless
+( {
+
+ 'struct' => [...],
+
+ 'elems' => [
+
+ {
...
+ },
+
+ {
+
+ 'attrs' => [],
+
+ 'elems' => [
+
+ bless( {
+
+ 'struct' => [...
+
+ ],
+
+ 'elems' => [
+
+ {...},
+
+ {...},
+
+ {
+
+ ...
+ },
+
+ {
+
+ ...
+
+ },
+
+ {
+
+ ...
+
+ }
+
+ ],
+
+ 'tag' => 'sequence'
+
+ }, 'BLOCK' )
+
+ ],
+
+ ...
+
+ }
+
+ ],
+
+ 'tag' => 'sequence'
+
+ }, 'BLOCK' )
+ ],
+ ...
+ },
+ {
+ ...
+ },
+ {
+ ...
+ },
+ {
+ 'attrs' => [],
+ 'elems' => [
+ bless
+( {
+
+ 'struct' => [...],
+
+ 'elems' => [
+
+ {
+
+ 'attrs' => [],
+
+ 'elems' => [
+
+ bless( {
+
+ 'struct' => [...],
+
+ 'elems' => [
+
+ { ...},
+
+ {...},
+
+ {...}
+
+ ],
+
+ 'tag' => 'sequence'
+
+ }, 'BLOCK' )
+
+ ],
+
+ ...
+ }
+
+ ],
+
+ 'tag' => 'sequence'
+
+ }, 'BLOCK' )
+ ],
+ ...
+ },
+ {
+ ...
+ },
+ {
+ ...
+ }
+ ],
+ 'tag' => 'sequence'
+ }, 'BLOCK' )
+ ],
+ ...
+ },
+ {
+ 'attrs' => [],
+ 'elems' => [
+ bless( {
+ 'struct' => [...],
+ 'elems' => [
+ {...},
+ {...},
+ {...},
+ {...},
+ {...},
+ {...},
+ {...}
+ ],
+ 'tag' => 'sequence'
+ }, 'BLOCK' )
+ ],
+ ...
+ },
+ {
+ 'attrs' => [],
+ 'elems' => [
+ bless( {
+ 'struct' => [...],
+ 'elems' => [
+ {...},
+ {...},
+ {...},
+ {...},
+ {
+ 'attrs' => [],
+ 'elems' => [
+ bless
+( {
+
+ 'struct' => [...],
+
+ 'elems' => [
+
+ {
+
+ 'attrs' => [],
+
+ 'elems' => [
+
+ bless( {
+
+ 'struct' => [...],
+
+ 'elems' => [
+
+ {...},
+
+ {...}
+
+ ],
+
+ 'tag' => 'sequence'
+
+ }, 'BLOCK' )
+
+ ],
+
+ ...
+
+ }
+
+ ],
+
+ 'tag' => 'sequence'
+
+ }, 'BLOCK' )
+ ],
+ ...
+ }
+ ],
+ 'tag' => 'sequence'
+ }, 'BLOCK' )
+ ],
+ ...
+ }
+ ],
'
+tag' => 'sequence'
},
+'BLOCK' )
],
...
},
{
'attrs' => [],
'elems' => [
bless( {
'
+struct' => [...],
'
+elems' => [
+ {
+ 'attrs' => [],
+ 'elems' => [
+ bless( {
+ 'struct' => [...],
+ 'elems' => [
+ {...},
+ {...},
+ {...},
+ {...}
+ ],
+ 'tag' => 'sequence'
+ }, 'BLOCK' )
+ ],
+ ...
+ }
+ ],
'
+tag' => 'sequence'
},
+'BLOCK' )
],
...
}
],
'tag' => 'sequence'
}, 'BLOCK' )
],
...
};
used in this context and definitely never nested like this. The concept of
is still a little obscure to me. I guess I learn the best from example code. Since I haven't found any yet used in this way, I'm completely stumped as to why
was used and what is the best way to access these elements? I'm able to drill down the structure just like it's a typical HOA, but why
is doing something special here, but I can't figure it out. Can someone shed some light for me?
UPDATED: original post was cut off for being too long. Abbreviated LOG output.