my @keys = keys (%$hash_ref); foreach my $k (sort {lc $keys[$a] cmp lc $keys[$b]} 0..$#keys) { print "$keys[$k] => "; if (ref($hash_ref -> {$keys[$k]}) eq 'ARRAY') { print "(Untermenge wie folgt:)\n"; my @keys2 = keys %{$hash_ref -> {$keys[$k]}}; foreach my $k2 (sort {lc $keys2[$a] cmp lc $keys2[$b]} 0..$#keys2) { print "\t\t$keys2[$k2] => " . (defined $hash_ref -> {$keys2[$k2]} -> {$keys2[$k2]} ? $hash_ref -> {$keys2[$k2]} -> {$keys2[$k2]} : 'NOT DEFINED') . "\n"; } } else { print (defined $hash_ref -> {$keys[$k]} ? $hash_ref -> {$keys[$k]} : 'NOT DEFINED'); } print "\n"; }