Bingo, yea, use hidden values so that you can identify what line the information they are about to add to. Store origional field values in the hidden tags and then use those to find the line, then add the whole line over again in that first push statement.

Thanks -- do I need to pass all of the information again in the form in hidden tags? For example, I can pass the ID to match it, but do I need to pass along all of the other variables, too, so they will all be included in the new line -- this would be values for $form{'field1'}, etc. in your code.

I think I'm getting close, except for the fact that it's not rewriting the file. In fact, the else statement actually wiped out my database -- go figure. If I print @new in a return, I'm getting the right line of pipe-delimited info. The replacement just isn't happening. Does it have something to do with the "print new_data @new;" The permissions look OK. Here is my code:

That way, you can see if an error is occuring wile trying to read the data base, since the @new is turning out empty, that says it's not reading the data base, with an else satement in their it would throw all the data into @new if something was wrong with the if(). Know what I mean. Also, good thinking by printing out @new to see if it was even anything. Is the persmission of the data base your reading 777?

That did the trick! Thanks Sleuth. The path I had wasn't opening up the right file. I actually had it set to another variable of the path, so it cancelled out and tried to open the variable name instead of the associated path.