# from David Golden
# on Wednesday 24 January 2007 10:45 am:
>From my previous description hopefully it's clear what the problem is.
> Perhaps if A::Z::Member had a back-reference to the containing
>A::Z::Archive, calls to rename could update the cache. But then
>you've got to have DESTROY break the circular references and so on.
Or, perhaps both the A::Z::Archive and A::Z::Member have a handle on an
A::Z::Directory, which simply maps filenames to indices in the
archive's array, and has a rename() method. Shouldn't be any circular
references there. Also, major changes in the A::Z::Archive object
state (where you just want to punt the cache fixup) could rebuild the
Directory with a simple map().
Also, this could be a completely optional usage. Perhaps when you know
you're working with readonly archives, you could call index_directory
on the archive.
--Eric
--
"Because understanding simplicity is complicated."
--Eric Raymond
---------------------------------------------------
http://scratchcomputing.com
---------------------------------------------------