for my $node (keys %{$exception_report}) { print "Exceptions for $node:\n\n"; for my $exception (keys %{$exception_report->{$node}}) { for my $file (keys %{$exception_report->{$node}{$exception}}) { while ( my ($metric, $value) = each %{$exception_report->{$node}{$exception}{$file}} ) { print "\t$exception : ($file) $metric = $value\n"; } } } }