Basically what Perl is telling you is that there is data missing where you expect there to be some. Tracing down the code is one way to find out which bit of data it is, but a first step would be to dump the instance of the hash that you do have, using Data::Dumper right before the line that the warning refers to. This should show you which record in your dataset has the missing data, and by examining the record you'll see the problem. Then you can decide whether to ignore the warning or add code to handle the situation.
Add to the top of your script:
Then add right before the line that produces the error (should be line 194 after the change above):use Data::Dumper; $Data::Dumper::Sortkeys = 1;
This will print the data structure for each record and then die when you encounter the missing information, so you can compare the most recent record with the ones before it that didn't cause a warning message.my ($cnt00, $cnt01, $cnt10, $cnt11) = (0) x 4; # add two lines print Dumper $data; die "missing \$nchar\n" if not $nchar; my ($first_site, $last_site) = $use_filtered ? @{$thresholds->{$dye}{' +indices'}} : (0, $nchar-1);
Hope this helps!
PS Please edit your OP and use the readmore tags!
Update: Added Dumper code example
In reply to Re: Help De-bugging
by 1nickt
in thread Help De-bugging
by GeneGeek
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |