in reply to If Condition causes totally blank Output File/Issue in Writing to Output

Hi all, A few updates: when I used autodie, I got an error saying "main::OUT is used only once, possible error at line 47." I fixed it by using a scalar handle as shown below. Also, I am getting a blank file (18.7 MB), not an empty one. Despite fixing this error, I still get a blank output file.

use warnings; my $OUT; open $OUT, ">", "$filename.counts" or die "$filename.counts: $!"; foreach my $chr (keys %chrsize){ my $size = $chrsize{$chr}; # chr, size, index work (print stateme +nts show reasonable values) foreach my $index (0..$size) { #if (exists $piRNA{$chr}{$index}) { # print $OUT "$chr\t$index\t$piRNA{$chr}{$index}\n";} $piRNA{$chr}{$index}=0 if (!exists $piRNA{$chr}{$index}); #print "$piRNA{$chr}{$index}\n" if (exists $piRNA{$chr}{$index +}); # test code I've put in print $OUT "$chr\t$index\t$piRNA{$chr}{$index}\n"; } }
  • Comment on Re: If Condition causes totally blank Output File/Issue in Writing to Output
  • Download Code

Replies are listed 'Best First'.
Re^2: If Condition causes totally blank Output File/Issue in Writing to Output
by holli (Abbot) on May 28, 2019 at 13:45 UTC
    If there seems nothing wrong with the code and the output is still bad, there must be something wrong with your data. Use Data::Dumper and print a dump of your data hash %piRNA. See if the data meets your expectations.


    holli

    You can lead your users to water, but alas, you cannot drown them.
Re^2: If Condition causes totally blank Output File/Issue in Writing to Output
by poj (Abbot) on May 28, 2019 at 14:05 UTC

    Try printing something known on opening the file and again before closing.

    open $OUT, ">", "$filename.counts" or die "$filename.counts: $!"; print $OUT scalar localtime." open\n"; # # code # print $OUT scalar localtime." close\n"; close $OUT;

    Does more code run after the part you posted ?

    poj