Oh. The file is being written to, but you can't read it because it was opened for append but not read (mode ">>" instead of "+>>"), and also because, due again to the append access, it is already positioned to the end of file when you do the first read.
If you change the open mode from ">>" to "+>>", and insert seek FH5, 0, 0 or die "Seek failed, $!"; just before while (<FH5>) it should work.
Another way would be to close FH5 and then reopen it for input (mode "<") just before trying to read it.