http://www.perlmonks.org?node_id=140774


in reply to Buffering File Output

Do something like this once, after opening the output filehandle:
select(OUTPUT); # Change the default filehandle $|=1; # Turn on autoflushing for default f.h. select(STDOUT); # Go back to normal default f.h.
More importantly:

When processes exit normally (via the exit function or simply falling off the end of the script) pending output on filehandles is flushed and the filehandles are closed. What's curious is that this isn't happening for you. Are you terminating the script in some odd way? Segfaulting it? Killing it with a signal?

Replies are listed 'Best First'.
Re: Re: Buffering File Output
by MadraghRua (Vicar) on Jan 23, 2002 at 05:05 UTC
    Thanks for the reply. No, nothing is used to terminate the script. What finishes the script is the end of file marker in the input file. So when the script finishes running, all the records are printed to screen and about 200 lines are not printed to the output file.

    MadraghRua
    yet another biologist hacking perl....