in reply to Learning Exercise

You are doing a lot of opening and reading and closing and so on. Modern OSes have lots of diskcache, so it's not a problem, but it probably doesn't scale very well. Also, I personally find it hard to work with data that way.
I've always considered hashtables as the best thing since sliced bread. Hashtables were always hard to store on disk, but with the excellent DB_File module you can tie a hash to a diskstored db-database, and use it as if it were an in-memory hash table. No need to worry about the file format or loading-and-storeing the database. Just remember to untie it before you terminate the script.
And since it is a hash you can perform all the usual hashtabel operations, assigning, retrieving and deleteing (which solves your original problem). You can do foreach $key {sort keys %hash} and do a linear search if you want.

And then you can do hashes of different tied-in hashes, stored in different files. I find that a combination of perverse and convenient.

Replies are listed 'Best First'.
Re: Re: Learning Exercise
by Foncé (Scribe) on Jul 18, 2002 at 15:19 UTC
    Hmm...interesting thoughts. Sounds like a good idea, overall. I'm going to try to finish this programme as is, though (just for the sake of completion) and then work on a better one using the methods you described. People keep saying that hashes are the way to go here.