#!/usr/bin/env perl use strict; use warnings; # use module use XML::Simple; use Data::Dumper; # create object my $xml = new XML::Simple; # read XML file my $xmlData = $xml->XMLin( "./xuo.xml", forcearray => 1 ); # print output # print Dumper($data); #print Dumper($xmlData); my $main_target = ''; my $target = ''; my $sub_target = ''; my $main_target_name = ''; my $target_name = ''; foreach $main_target ( @{ $xmlData->{main_target} } ) { #$main_target_name = @{$main_target->{main_target_name}}[0] ; $main_target_name = $main_target->{main_target_name}[0]; print "Main Target Name : ", $main_target_name, "\n"; foreach $target ( @{ $main_target->{target} } ) { #$target_name = ${$target->{target_name}}[0] ; $target_name = $target->{target_name}[0]; print " Target Name : ", $target_name, "\n"; #if ( exists $main_target->{target}->{sub_target} ) if ( exists $target->{sub_target} ) { #foreach $sub_target ( @{ $main_target->{target}->{sub_target} } ) foreach $sub_target ( @{ $target->{sub_target} } ) { #print " Sub Target Name : ", $sub_target, "\n"; print " Sub Target Name : ", $sub_target->{sub_target_name}[0], "\n"; } } } } exit; #### Main Target Name : Instance Target Name : estspc_netlist Target Name : ibitmap Target Name : liberty Sub Target Name : nldm_liberty Sub Target Name : ccs_liberty Main Target Name : Validation Target Name : bmval Sub Target Name : bmval_lvs Sub Target Name : bmval_sim