$VAR1 = { 'gene' => { '1' => { 'gene_seq' => { 'startpos' => '5999', 'id' => '1' }, 'label' => 'gene_of_interest' }, '2' => { 'gene_seq' => { 'startpos' => '96819', 'id' => '2' }, 'label' => 'Another_gene_of_interest' } } }; #### $xml->{gene} #### $xml->{gene}->{1} or $xml->{gene}->{2} #### $xml->{gene}->{1}->{gene_seq} $xml->{gene}->{1}->{label} $xml->{gene}->{2}->{gene_seq} $xml->{gene}->{2}->{label} #### $xml->{gene}->{1}->{gene_seq}->{startpos} $xml->{gene}->{1}->{gene_seq}->{id} $xml->{gene}->{2}->{gene_seq}->{startpos} $xml->{gene}->{2}->{gene_seq}->{id} #### my $xml = XMLin($data, keyattr => [ ]); #### my $xml = XMLin($data, keyattr => { gene => 'id', gene_seq => 'id' } ); #### my $xml = XMLin($data, keyattr => { gene => 'id', gene_seq => 'id' }, forcearray => [ 'gene', 'gene_seq' ] );