Your description of the symptoms is confusing me. You talk about Tie::File making modifications but your duplicating/check code not following these modifications. This seems to me to be a case of your duplicating/check code being faulty.
Tie::File does not support inserting new elements by using strings with \n, as per its documentation. So use splice to insert the new lines. Most likely, one of your problems comes from Tie::File flushing certain lines to disk and upon rereading them, getting its count out of whack because the old (cached) line numbers don't match up with the offsets anymore because you sneaked additional lines into the array instead of using the documented approach.
In reply to Re: Query regarding 'Tie' file
by Corion
in thread Query regarding 'Tie' file
by Harman
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |