http://www.perlmonks.org?node_id=1048589


in reply to Re^3: Memory issue with large cancer gene data structure
in thread Memory issue with large cancer gene data structure

Thanks again for your help. Would you mind explaining how this section is working?
# now remove double counted patients from the data structure foreach my $gene ( values %site_length_catch) { for my $count ( values %$gene ) { $count = keys %$count; # in scalar context you get the + number of keys

I get that you've created a hash of a hash of a hash $site_length_catch{$gene}{$sit}{$patient} = 1; and initialized the bottom value array to 1 ...correct? but then with this part how are you accessing the values of the next level... why would you use  values %site_length_catch instead of keys %site_length_catch

Thanks again for your time, the code works great, I just want to fully understand whats happening.