@str = qw( 7 house network_name 4 6); #<--example of data if ($myhash{$str[2]}{$str[0]){ # if network_name is found increment the values of 3 and 4 ($myhash{$str[2]}{$str[0]}[3])++; ($myhash{$str[2]}{$str[0]}[4])++; } else { # must be new so ad new data to hash $myhash{$str[2]}{$str[0]} = [ @str ]; }