in reply to Re^2: How do I backtrack while reading a file line-by-line?
in thread How do I backtrack while reading a file line-by-line?

from the POD:
memory - This is an upper limit on the amount of memory that Tie::File will consume at any time while managing the file. This is used for two things: managing the read cache and managing the deferred write buffer

I didn't find that misleading. It says to me that only chunks of the file data are loaded into memory. In fact, I assumed that it loaded a full index of the lines at instantiation.

If the OP knows about how much data an average (or the largest) backtrack is, the read cache could optimized for memory usage/speed. Plus you get a layer of abstraction to hide any nastiness.



grep
One dead unjugged rabbit fish later
  • Comment on Re^3: How do I backtrack while reading a file line-by-line?

Replies are listed 'Best First'.
Re^4: How do I backtrack while reading a file line-by-line?
by ikegami (Patriarch) on Oct 14, 2006 at 07:26 UTC

    I didn't find that misleading.

    "[The memory parameter] is an upper limit on the amount of memory that Tie::File will consume at any time while managing the file" is a false statement. Tie::File's memory usage is unbouded. The docs do specify an exception, but it's very misleading.

    The memory value is not an absolute or exact limit on the memory used. Tie::File objects contains some structures besides the read cache and the deferred write buffer, whose sizes are not charged against memory.

    Does that give the impression that Tie::File's memory usage is unbounded? If not, then the docs are misleading.