open INF infile for reading or die cannot read file define data hash while read line from file chomp line next if line start with '#' or empty line split line on ',' and save in @tmp $data->{$tmp[1]}{$tmp[4]}{$tmp[2]} += $tmp[3]; end while print "IP\tWrite/Read\tTotal\tFileName\n\n" foreach ip ( sort keys data ) foreach file ( keys data->{ip} ) foreach rw ( keys data->{ip}{file} total = data->{ip}{file}{rw} print "$ip\t$rw\ttotal\tfile\n" end foreach rw end foreach file end foreach ip