use strict; use warnings; use XML::Simple; use Data::Dumper; my $data = do {local $/;}; my $xml = XMLin($data); print Dumper($xml), "\n\n"; for my $id (3,4) { print $xml->{gene}{$id}{'label'}, "\n"; } __DATA__ #### C:\test>220720 $VAR1 = { 'gene' => { '3' => { 'label' => 'gene_of_interest' }, '4' => { 'label' => 'Another_gene_of_interest' } } }; gene_of_interest Another_gene_of_interest C:\test>