Учитывая то, что у вас есть выше, я предполагаю, что у вас включен флаг ForceArray.
Вложенные ключи хранятся в виде хэшей хэшей с использованием ссылок.
Итак, чтобы получить доступ к 'd2', вам нужно использовать:
my $d2val = $xmldata->{d}[0]->{d2}[0];
(или мои предпочтения)
my $d2val = $xmldata->{d}->[0]->{d2}->[0];
(потому что это делает очевидным различие)
Очевидно, что чем глубже вы идете, тем страшнее это становится. Это одна из причин, по которой я почти всегда предлагаю XML :: LibXML и XPath вместо XML :: Simple. XML :: Simple быстро становится не простым. XML :: Простые документы объясняют, как различные опции могут влиять на этот макет.
Data :: Dumper неоценим, если вы хотите посмотреть, как выкладываются данные.