printf "%${lenght_frt}s ", " "; foreach (sort keys %date) { printf "%-${lenght_date}s ", $_; } print "\n"; foreach (sort keys %obj) { printf "%-${lenght_frt}s ", $_; for( my $i = 0; $i <= $#date; $i++) { if(exists($count{$_}->{$date[$i]})) { print " " x ($lenght_date), $count{$_}->{$date[$i]}; } } print "\n"; } close (FH); print "\n"; printf "%-${lenght_frt}s ", " TOTAL "; print map { sprintf "%7d", $_ }@tasks; print "\n"; }