sub printit { my $ref = shift; foreach my $key (keys %$ref) { print "$key: "; if (ref $ref->{$key} eq 'ARRAY') { if (ref $ref->{$key}[0]) { printit($ref->{$key}[0]) } else { print "$ref->{$key}[0]\n" } } elsif (ref $ref->{$key} eq 'HASH') { printit ($ref->{$key}) } else { print "$ref->{$key}\n" } } } printit ($xml);