Geo
Geo

Reputation: 96897

Is Tie::File lazily loading a file?

I'm planning on writing a simple text viewer, which I'd expect to be able to deal with very large sized files. I was thinking of using Tie::File for this, and kind of paginate the lines. Is this loading the lines lazily, or all of them at once?

Upvotes: 3

Views: 165

Answers (2)

Ivan Nevostruev
Ivan Nevostruev

Reputation: 28733

As far as I can see from its source code it stores only used lines in memory. And yes, it loads data only when needed.

You can limit amount of used memory with memory parameter.

It also tracks offsets of all lines in the file to optimize disk access.

Upvotes: 6

brunov
brunov

Reputation: 1003

It won't load the whole file. From the documentation:

The file is not loaded into memory, so this will work even for gigantic files.

Upvotes: 8

Related Questions