gzayzay has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monks,

I am having a little problem with my script. I have written a function edman() that generates a list of people and stores that list in edman.txt. However, I also want to open edman.txt to read the content one by one in another file. I am reading the content of edman.txt sucessfully but by the time I attempt to read the last content of edman.txt, I get an incomplete name. I am assuming that this is because the function edman() has not completely written to edman.txt. Thus I am kindly asking if anyone count show me how to set a dely of 10sec before reading from edman.txt. I have already tried a for loop as shown below but it does not work.

if($search !=1) { GenerateTestFileList(); print " \n*********************************\n"; print "* ".localtime(time)." *\n"; print " DATABASE.TXT WAS NOT FOUND \n"; print " \n*********************************\n\n"; print "Generating database.txt for Processing....."; for($timer = 0; $timer <= 100000000; $timer++) { if ($timer == 100000000) { open(DBASE, $path."database.txt") || die ("File does not exist +, $!\n"); while(<DBASE>) { #print ("TIMER is: $timer\n"); chomp; print (LIST "\nTIME: ".localtime(time)."\n"); print (LIST "$_\n\n"); open (XFILE, $_) || die ("Can\'t open[$_], $!\n"); while(<XFILE>) { chomp; print (LIST "$_\n"); }close XFILE; } close LIST; } } }

Thanks,

Edman

Replies are listed 'Best First'.
Re: Generating Delay
by ikegami (Patriarch) on Mar 16, 2006 at 18:35 UTC
    You might just need to flush or close (which does an implicit flush) the file handle used in edman().
    sub flush { my $h = select($_[0]); my $af=$|; $|=1; $|=$af; select($h); }
      You are right, I only needed to close the file handler i used. I didn't close it by mistake. It works just fine. there is no need for the timer anymore.

      Thanks to all Monks for their assistance.

      Edman

Re: Generating Delay
by davidrw (Prior) on Mar 16, 2006 at 17:36 UTC