I
Ian Pellew
Hi all;
Yet another array/hash problem.
From this Google list this is a common problem that the Perlphiliacs
tell
us to perldoc whatever,
BUT
I am trying to get to grips with a fragment of an XMLin structure
which dumps to :-
{'Others...',
'our_tags' => { <=== $p
'idx_serno' => '10001',
'set' => [ <--- $$m
{ 'dscn' => 'Development set',
'serno' => [
{ 'value' => 'General Header',
'sdate' => '0310251502',
'name' => 'ph_',
'content' => '10003'
},
{ 'value' => 'Devs page footer',
'sdate' => '0310251502',
'name' => 'pt_',
'content' => '10004'
}
],
'content' => 1 <+++ Want to select set on this.
},
{ 'dscn' => 'Testers set',
'serno' => [
{ 'value' => 'Testers oage Header',
'sdate' => '0310251502',
'name' => 'ph_',
'content' => '10076'
},
{ 'value' => 'test footer',
'sdate' => '0310251502',
'name' => 'pt_',
'content' => '10104'
}
],
'content' => '2' <+++ Or this
}
]
}
};
I think I am right in saying this is a
our_tag=Hash # Ignoring idx_serno
Set=Array of Hashes
Serno=Array of Hashes
When I crack the ability to choose the key, values set from
{set->content=>$users_set}
then the rest of my problems will become clearer.
If I make {set} a hash by having only one set I have no problems
and can work out what I want, but the array Ummmm.
I am not keen to change XMLin as I have several other child tags of
'our_tags' all
running OK as these are all Hashes, besides, cracking this will give a
deeper insight
to a gang of hashes array mixers. Bit like being at a wild party.
Code fragments:-
my $p = XMLin(undef, keyattr=>[], forcearray=>0, normalisespace=>2);
my $m = \%$p->{our_tags}->{set};
Dumping $m shows both set->contents, but
Dumping $m->{set} shows
$VAR1 = { # HASH
'dscn' => 'Testers set',
'serno' => [ # Array
{ 'value' => 'Testers oage Header',
'sdate' => '0310251502',
'name' => 'ph_',
'content' => '10003' },
{ 'value' => 'test footer',
'sdate' => '0310251502',
'name' => 'pt_',
'content' => '10004' } ],
'content' => '2'};
Which is the second {set}, Only to be expected as this is probaly the
array
(list) thats in the Dumper buffer.
print ref($$m) . "\n"; # yeilds an ARRAY
How do I get something like:-
my $ls = $$m->{set}->???????? to give a reference to the array for set
1.
By tweeking XMLin $m drops nicely to
my $m = \%$p->{our_tags}->{set}->{1}->{serno}->{ph_}->{value}; #
Cheating.
Regards
Ian
Yet another array/hash problem.
From this Google list this is a common problem that the Perlphiliacs
tell
us to perldoc whatever,
BUT
I am trying to get to grips with a fragment of an XMLin structure
which dumps to :-
{'Others...',
'our_tags' => { <=== $p
'idx_serno' => '10001',
'set' => [ <--- $$m
{ 'dscn' => 'Development set',
'serno' => [
{ 'value' => 'General Header',
'sdate' => '0310251502',
'name' => 'ph_',
'content' => '10003'
},
{ 'value' => 'Devs page footer',
'sdate' => '0310251502',
'name' => 'pt_',
'content' => '10004'
}
],
'content' => 1 <+++ Want to select set on this.
},
{ 'dscn' => 'Testers set',
'serno' => [
{ 'value' => 'Testers oage Header',
'sdate' => '0310251502',
'name' => 'ph_',
'content' => '10076'
},
{ 'value' => 'test footer',
'sdate' => '0310251502',
'name' => 'pt_',
'content' => '10104'
}
],
'content' => '2' <+++ Or this
}
]
}
};
I think I am right in saying this is a
our_tag=Hash # Ignoring idx_serno
Set=Array of Hashes
Serno=Array of Hashes
When I crack the ability to choose the key, values set from
{set->content=>$users_set}
then the rest of my problems will become clearer.
If I make {set} a hash by having only one set I have no problems
and can work out what I want, but the array Ummmm.
I am not keen to change XMLin as I have several other child tags of
'our_tags' all
running OK as these are all Hashes, besides, cracking this will give a
deeper insight
to a gang of hashes array mixers. Bit like being at a wild party.
Code fragments:-
my $p = XMLin(undef, keyattr=>[], forcearray=>0, normalisespace=>2);
my $m = \%$p->{our_tags}->{set};
Dumping $m shows both set->contents, but
Dumping $m->{set} shows
$VAR1 = { # HASH
'dscn' => 'Testers set',
'serno' => [ # Array
{ 'value' => 'Testers oage Header',
'sdate' => '0310251502',
'name' => 'ph_',
'content' => '10003' },
{ 'value' => 'test footer',
'sdate' => '0310251502',
'name' => 'pt_',
'content' => '10004' } ],
'content' => '2'};
Which is the second {set}, Only to be expected as this is probaly the
array
(list) thats in the Dumper buffer.
print ref($$m) . "\n"; # yeilds an ARRAY
How do I get something like:-
my $ls = $$m->{set}->???????? to give a reference to the array for set
1.
By tweeking XMLin $m drops nicely to
my $m = \%$p->{our_tags}->{set}->{1}->{serno}->{ph_}->{value}; #
Cheating.
Regards
Ian