• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 136
  • Last Modified:

Real-Time TextIO

Hi,

I need to be able to write text into a file immediately, however, I notice that all of my writing is being done at the end of my program.

I've tried closing and re-opening my file pointer but that doesn't work.

    open (LOG_FILE,">>./AUTO_LOG/AUTO_v1_0.log");
    print LOG_FILE ("\nStuff...\n");
    close (LOG_FILE);

How do I immediately force text out to a file?

Thanks in advance,
Alex
0
Alex_Tong
Asked:
Alex_Tong
  • 2
1 Solution
 
Kim RyanIT ConsultantCommented:
You need to turn the buffering off at the start of your script

$| = 1;

0
 
maneshrCommented:
Alex_Tong,

Welcome back!!

You have the following question open for a long time now. Please take some time to close this question.

EE userid Alex_Tong
Total questions asked 29 (100%)
Open questions 1
       
Topic Area              URL              Date              
C Programming   http://www.experts-exchange.com/jsp/qShow.jsp?ta=cprog&qid=20079044   02/16/01  

Your help in closing this question will be highly appreciated.

Thanks

maneshr
(NOT a moderator at EE)
0
 
japhyRPICommented:
teraplane was close, but you need to turn off buffering for the filehandle(s) you need, via the select() function:

  open LOGFILE, ">> logfile" or
    die "can't append to logfile: $!";
  {
    my $oldfh = select LOGFILE;
    $| = 1;
    select $oldfh;
  }
  # ...
0
 
maneshrCommented:
Alex_Tong,

Thank you for taking the time to close the open question.

Your help is highly appreciated.

maneshr
(NOT a moderator at EE)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now