in reply to Help!

Without looking at it very closely, this looks very wrong:
open (TEXT,">text.txt"); ... @text=<TEXT>;
You open test.txt (you should be checking the returns of your opens and any other function that uses the system!) for writing, then you try to read from it. I don't think that's going to work like you want it to, at all.

And in fact what you've done is overwritten what was already in @text. What do you want in @text, anyway? Basically everything in test.txt previously, plus the new stuff?

There are several ways to do this, but one of the simplest is this:

You should also throw in some file locking for both files (test.txt and forum.html)--lookup flock.

And check the return status of your open calls! :)

If this doesn't help, be more specific about what isn't working.