Using seek and tell to update a file will be most useful when writing files with fixed-length records. There is a problem with the method you're trying to accomplish, in that if what you're writing is anything more or less than the exact size of what you're replacing, you'll either not completely overwrite the word you're trying to substitute, or you'll overwrite it and more. There is no "insert into" function, when dealing directly with flat files. Files grow only at the bottom end.
The most common idiom for dealing with this problem is to read one file line by line, and for each line read, process that line, and write it back out to a new file. After you're done, you rename the new file over the old one, and presto, you're done.
Another common approach is to use Tie::File. This module allows you to treat your file like an ordinary array, altering the contents of individual elements, inserting elements, deleting elements, splicing, and so on. Tie::File provides a layer of abstraction from the file, to hide the ugly details of working with files.
Good luck!
Dave
In reply to Re: help me on seek and tell function
by davido
in thread help me on seek and tell function
by dee00zee
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |