in reply to hang caused by read / readline?

You are probably trying to read the whole file into memory. Its best if you show a small self contained program which replicates the problem.

Replies are listed 'Best First'.
Re^2: hang caused by read / readline?
by grepdashv (Initiate) on Sep 04, 2009 at 06:11 UTC
    Sorry, I forgot to include a snippet because my wife was rushing me out the door. ;-) No, I'm not reading the whole file into an array; I'm using scalar context to read in one line at a time:
    ... open (INPUTFILE, $inputfile) or die ("\nERROR: Unable to open file +\"$inputfile\".\n"); while (!eof(INPUTFILE)) { $line = readline(INPUTFILE); ...
    And that's where it chokes. If I insert a print statement before and after the readline (as checkpoints), the first one will work, and the second one will not. I don't have experience using read, and when I tried replacing the readline with a simple read earlier, It looked like the same hang was happening. However, when I tried it again just now, it worked fine:
    read(INPUTFILE, $x, 1);
    Since I knew (from MUCH smaller files) that the input files would have chunks of chr(0) at the front, I wrote a bit of code around the read statement above to see just how bad the situation is for this particularly large file. As I write this message, we're at 120MB worth of continuous chr(0) and counting...