Tried timestamping the second layer, and saving directly, no luck. Shrugged and dropped the midlevel tax_swap hash and it's working now.
Thanks. On Thu, 2003-10-23 at 14:16, Perrin Harkins wrote: > Hi Brendan, > > > I'm trying to store an object (simple datatype, just a blessed hash > > inside) within Apache::Session. I'm doing this: > > $session->{tax_swap}->{preview_sell_candidates} = [EMAIL PROTECTED]; > > where @items is an array of SellCandidate objects... I've stored array > > references in Apache::Session before; is the problem my trying to save > > the Objects, or the objects within an array Ref? > > The problem is most likely that you are storing it two levels deep. > Apache::Session only saves when it sees that you have changed something, > and it isn't seeing your change. This is a common problem with tied > objects, and there is a good explanation of it in the MLDBM > documentation. The Apache::Session docs say this: > > "Note that Apache::Session does only a shallow check to see if anything > has changed. If nothing changes in the top level tied hash, the data > will not be updated in the backing store. You are encouraged to > timestamp the session hash so that it is sure to be updated." > > You could also just call the save method explicitly: > tied(%session)->save() > > > I know from it's docs that CGI::Session can store Objects - am I better > > off switching to CGI::Session > > They both use Storable for serialization. The problem is the tie, not > the serializer. > > - Perrin -- Brendan W. McAdams | [EMAIL PROTECTED] Senior Applications Developer | (646) 375-1140 TheMuniCenter, LLC | www.themunicenter.com