for my $server ( keys %total ){ for my $date ( keys %{$total{$server}} ){ for my $appl ( keys %{$total{$server}->{$date}} ){ printf $OUTCSV ("$server,$date,$appl,%3.1f%% \n", $total{$server}->{$date}->{$appl}); } } }