> Perhaps I did not understand the question about traversing, > but I'd build a hash with correspondences: > > key:"feature provided" --> value:"list of packages that provide it" > > foe all available packages. we do that. You have to read in the packaging information before you can build this list. How do you read in the packaging information w/o traversing the packages? > This hash would then be interrogated to find suitable candidates > for a dependency, when the need arises. But I suspect this > is already implemented and it's still slow... :) The hash lookup is fast - that's trivial. It's the getting the data into the hash that takes some time. and even that isn't too bad - but if you have enough packages it takes more time than when you have fewer packages. -sv