First, I think that you understand that having an undefined $id as a hash key won't work. And to fix this, you want to just rearrange your for loops.my $id; # ?? foreach my $window ( @{ $data{$id} } ) { # only pass windows with > min number of stats (i.e. >1 for now), an +d # of course we also ignore any 'undef' windows. next unless scalar @{ $data{$id} }[$window] >= 2; foreach my $individual ( keys(%data) ) {
foreach my $id ( keys %data ){ foreach my $window ( @{$data{$id}} ){
Just this will get you much further. There is still a problem with the second loop though, at least in how you use $window in the subsequent code. You are attempting to use $window as an index, but it's not an index. Since you have experience using Data::Printer, I suggest going ahead and checking out what $window is.
Now, the way to fix things with the fewest number of overall edits is to change the second for loop.
Then in your method calls, just change those to align with the scalar test above:foreach my $id ( keys %data ){ foreach my $window ( 0 .. $#{$data{$id}} ){ next unless scalar @{ $data{$id}[$window] } >= 2;
I hope that helps.\@{ $data{$id}[$window] }
In reply to Re^2: Population of HoAoA based on file contents
by state-o-dis-array
in thread Population of HoAoA based on file contents
by iangibson
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |