in reply to What is the problem of subroutine "make_file" in my code?

I am still trying to figure out what the code is doing. But i noticed you opened short_sequence_* for output and then use it for read?

You want to either close that file before you read or don't write out, just put it in an array (if the file is small enough)

Can you try  close (OUT_NORM) or die $!; before you call make_files();?

-SK

update: Here is an example on what will happen if try to re-read non-closed files

#!/usr/bin/perl -w open (OUT, ">junk.txt") or die $!; print OUT ("hi\n") for (1..3); close(OUT) or die $!; open (IN,"<junk.txt"); print while(<IN>); close(IN) or die $!;

the output right now is

hi hi hi

however if you comment out close(OUT) you will not see any output.

hopefully this fixes your issue!