#!/usr/bin/perl use strict; use XML::Simple; use Data::Dumper; my $xml_obj = XML::Simple->new(ForceArray => ['tables']); # xml my $xml = $xml_obj->XMLin('test.xml'); print Dumper($xml); exit; #### $VAR1 = { 'detail' => { 'rate' => { 'name' => 'RATE', 'type' => 'number', 'size' => '', 'mnemonic' => 'rate' }, 'date' => { 'name' => 'The_Date', 'type' => 'date', 'size' => '8', 'mnemonic' => 'date' }, 'name' => 'schema.detail', 'requiredfields' => 'date,rate,scenarioname' }, 'junk1' => { 'name' => 'rates', 'requiredfields' => 'date,rate', 'type' => 'junk1' }, 'junk2' => { 'name' => 'demands', 'requiredfields' => '', 'type' => 'junk2' }, 'xyz' => { 'cpr' => { 'required' => 'true', 'calc' => 'CASE WHEN SUM(a) != 0 THEN round((1-power(1-sum(b/100*a)/sum(a),12))*100,2) ELSE SUM(0) END', 'name' => 'CPR', 'cohort' => 'false', 'type' => 'summed', 'size' => '8', 'mnemonic' => 'cpr' }, 'obsdate' => { 'required' => 'false', 'calc' => 'to_char(asofdate,\'mm/dd/yyyy\')', 'name' => 'asofdate', 'cohort' => 'true', 'type' => 'summed', 'size' => '8', 'mnemonic' => 'obsdate' }, 'model' => { 'required' => 'true', 'calc' => 'trim(\'model\')', 'name' => 'model', 'cohort' => 'true', 'type' => 'summed', 'size' => '', 'mnemonic' => 'model' }, 'name' => 'schema.xyz', 'requiredfields' => 'obsdate,wac,wala,wam', 'loancount' => { 'required' => 'false', 'calc' => 'sum(LOANCOUNT)', 'name' => 'LoanCount', 'cohort' => 'fale', 'type' => 'summed', 'size' => '8', 'mnemonic' => 'loancount' }, 'new' => { 'required' => 'false', 'name' => 'ISNEW', 'cohort' => 'true', 'type' => 'char', 'size' => '', 'mnemonic' => 'new' } } }; #### #!/usr/bin/perl use strict; use XML::Simple; use Data::Dumper; my $xml_obj = XML::Simple->new(ForceArray => ['tables']); # xml my $xml = $xml_obj->XMLin('test.xml'); for my $table (keys %$xml) { print Dumper($table); } exit;