Don't try to do it all in one pass, it'll just get too confusing. When you're just starting out, simpler is better. So use one pass to load the array, one pass to patch up the array, and then one to print the array. That way, you can more easily debug each pass. When you get more used to perl, you can start merging passes when you want.
# Read the data table my @table; while (<>) { chomp; my ($start, $stop, $id, $id2) = split /\t/, $_; push @table, [ $start, $stop, $id1, $id2 ]; } # Patch up the data for (my $i=1; $i < $#table; ++$i) { # check surrounding items and patch the data, as needed . . . } # Print the new table for my $ar (@table) { my ($start, $stop, $id, $id2) = @$ar; print ..... }
...roboticus
When your only tool is a hammer, all problems look like your thumb.
In reply to Re: filling in the zeros...please help
by roboticus
in thread filling in the zeros...please help
by david_lyon
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |