# 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
---------------------------------------------------

Reply via email to