#!perl use strict; use XML::Simple; use Data::Dumper; my $xmlSimple = new XML::Simple(KeepRoot => 1); my $xml = join "", ; my $professionsXML = $xmlSimple->XMLin($xml); print Dumper($professionsXML); print qq(0.1: $professionsXML->{'profs'}->{'name'}\n); print qq(0.2: $professionsXML->{'profs'}->{'profcats'}->{'name'}\n); foreach my $key (keys %{$professionsXML}) { print qq(1: $key\n); foreach my $key2 (keys %{$professionsXML->{$key}}) { print qq(2: $key2\n); if( ref $professionsXML->{$key}->{$key2} ) { foreach my $key3 (keys %{$professionsXML->{$key}->{$key2}}) { print qq(3: $key3\n); if( ref $professionsXML->{$key}->{$key2}->{$key3}) { foreach my $key4 (keys %{$professionsXML->{$key}->{$key2}->{$key3}}) { print qq(4: $key4\n); } }; } }; } } exit(0); __DATA__ prof cat group prof1