$VAR1 = { 'cmts' => { 'STBDSG' => { 'dsg' => [ { 'tag1' => '1', 'tag2' => 'caSystemId', }, { 'tag1' => '2', 'tag2' => 'gaSystemId', } ] }, #### my $dsg_tags = $xst->{cmts}->{STBDSG}->{dsg}; for my $dsg (@$dsg_tags) { print "Value of tag1 :"; print $dsg->{tag1}, "\n"; print "Value of tag2 :"; print $dsg->{tag2}, "\n"; } #### my $xst; if((not defined $xml) or ($xml =~ m/read\stimeout/i)){ &printXMLErr('request timed out'); } else { my $xs = XML::Simple->new(); $xst = eval { $xs->XMLin($xml,KeyAttr=>1) }; &printXMLErr($@) if($@); }