First, reduce your code to the absolute bare minimum that exhibits the problem. This will probably lead to you solving it yourself, but if it doesn't it'll make it easier for us to help you. Then, show us *all* of that bare minimum. As it stands, your code won't even compile (and that's ignoring the bit you cut out and replace with "parsing happens here").
However, a coupla pointers to get your started - first, get rid of the fork()ing. Windows doesn't do it very well. Second, Windows doesn't open() files properly. You say that you have to parse binary 'chp' files, whatever they are, but your code says that you're opening and parsing .txt files. If those are the files you mean to open, then you need to use binmode() to open the files properly. You might need to do that anyway even if they are text files, if your parsing code cares about line endings.