in reply to Efficiency Question

Upon reading this, I have two thoughts. One, Maybe this is Yet Another Application for the BerkeleyDB. I really feel like I'm giving the same answer to every other Seeker, but Berkeley has a BTree lookup, which is really efficient, and a configurable cache, and it is written in C. Maybe the interface has too much overhead (I don't know), and it also depends on the number of items you want to cache. I mean, for 30 items, it's hardly worth the DB overhead, probably. But maybe it's already something different at 300 items.

Number two is: C. If you really want to save on the number of instructions, you'd better implement the storage and fetching in C. You can do much more educated guesses about the nature of your items than perl can. But it really depends on your data. Variable length or fixed? Number or text? And of course, interfacing with arrays is cumbersome and instruction-intensive. However, if you keep your cache packed in perl, and as a pointer in C, you will circumvene that.

If you can give some background on the nature of your data, I can have a try at some C code. Would be fun, methinks.

Hope this helps,

Jeroen
"We are not alone"(FZ)