Код ниже является частью структуры XML, которую я получаю от XML::Simple
.
Я получаю много classfield
(classfield_101
, classfield_1023
, ...) и classfield_101
является одним из них. Для classfield_101
я ожидаю, что программа выведет 'CHECK UNCHECK'
на консоль.
my (%ClassDetails) = ();
my %struct = (
'level1' => {
'classfield' => {
'classfield_101' => {
'classfieldvalues' => {
'classfieldvalue' => [
{'content' => 'CHECK', 'key' => '1254789'},
{'content' => 'UNCHECK', 'key' => '1987456'}
]
},
'classfieldname' => 'CHECKCLASS',
'key' => 'CHECKDETAILS'
},
}
},
);
print Dumper(\%struct);
for my $elem (@{$struct{level1}{classfield}{classfield_101}{classfieldvalues}{classfieldvalue}}) {
print "$elem->{content} ";
}
#Output
#CHECK UNCHECK
Как перебрать каждый classfield_id
в %$classfield
и вывести значения?
foreach $classfield_id (keys %$classfield) {
## for ex: Looping for classfield_id = classfield_101 from %$classfield
if ( $classfield->{$classfield_id}->classfieldname eq "CHECKCLASS" ) {
### Stuck here --- $ClassDetails{checkuncheck} = How to print
}
}