my $XML = XML::Smart->new(DATA) ; my $addr0 = $XML->{hosts}{server}[0]{address}[0] ; ## return {address}[0] ## ...or... my $addr0 = $XML->{hosts}{server}{address} ; ## return {address}[0] my $addr1 = $XML->{hosts}{server}[1]{address} ; ## return {address} ## ...or.. my $addr1 = $XML->{hosts}{server}[1]{address}[0] ; ## return {address}