![]() |
|
"be consistent" | |
PerlMonks |
Waiting for a file to be writtenby why_bird (Pilgrim) |
on Oct 14, 2008 at 13:02 UTC ( #716973=perlquestion: print w/replies, xml ) | Need Help?? |
why_bird has asked for the wisdom of the Perl Monks concerning the following question:
Dear Monks,
I have a perl script that is (re-)writing a file using Tie::File, then calling a process to run in the background with this file as the input. I do this in a loop, so that I get a different version of the file for each runthrough of the process. The problem is (I think..) that the file has not always finished writing by the time I call the next process. How do I wait for a file to finish writing before calling my process? I do not think I am suffering from buffering. I have $|=1. Do I maybe need to somehow set this for the individual file instead? Perhaps I have got completely the wrong end of the stick and I have another problem here.. if so, does anyone have any suggestions? This code should illustrate my problem:
On my system, this gives the output: Which is the same type of problem as I get with my proper script. Hope this demonstrates what I mean. why_bird update: I realise I've asked a similar question before (albeit in a more rambling fashion). I thought untie(@array) would have the same effect as close(FILEHANDLE), but it doesn't seem to. Making sure I'd close'd my file before did the trick, but untie-ing doesn't seem to have the same effect. update 2: Actually, as Moritz pointed out, the file is being written too early, not too late.. d'oh Those are my principles. If you don't like them I have others. -- Groucho Marx .......
Back to
Seekers of Perl Wisdom
|
|