foreach my $k1 (keys %TV ) { print "\n# Hash Key = $k1\n"; # flintstones, jetsons, simpsons foreach my $v1 ($TV{$k1}) { foreach my $k2 (keys %$v1) { print "## Hash Hash key = $k2\n"; # series, nights, members if(ref($$v1{$k2}) eq 'ARRAY') { foreach my $h (@{$$v1{$k2}}) { if (ref($h) eq 'HASH') { foreach my $k3 (keys %$h) { print "$k3 => $$h{$k3}\n"; # member details } } else { print "$h\n"; # night values } } } else { print "$$v1{$k2}\n"; # series value } } } }