... while () { my $line=$_; (my $day,$month,$year,$hour,$minute) = ( $line =~ /^.*\[(\d*)\/(.*)\/(\d*):(\d*):(\d*).*$/); if ( defined $topHash{$year}{$month}{$day}{$hour}{$minute} ) { $minuteCounter=$topHash{$year}{$month}{$day}{$hour}{$minute}; $minuteCounter++; $topHash{$year}{$month}{$day}{$hour}{$minute}=$minuteCounter; } else { $topHash{$year}{$month}{$day}{$hour}{$minute}=1; $minuteCounter=$topHash{$year}{$month}{$day}{$hour}{$minute}; } } close(FILE); foreach my $ryear ( sort keys %topHash ) { foreach my $rmonth ( sort keys %{$topHash{$ryear}} ) { foreach my $rday ( sort keys %{$topHash{$ryear}{$rmonth}} ) { foreach my $rhour ( sort keys %{$topHash{$ryear}{$rmonth}{$rday}} ) { foreach my $rminute ( sort keys %{$topHash{$ryear}{$rmonth}{$rday}{$rhour}} ) { print "\"$ryear\"\t\"$rmonth\"\t\"$rday\"\t\"$rhour\"\t\"$rminute\"\t"; print "\"$topHash{'$ryear'}{'$rmonth'}{'$rday'}{'$rhour'}{'$rminute'}\"\n"; } } } } }