[ic] Sessions no longer preserve "sameness" of references
Andrew Shelansky
andrew at lunsfordgroup.com
Fri Sep 10 22:40:28 EDT 2004
On Fri, 2004-09-10 at 19:01, Jon Jensen wrote:
> Is the Interchange upgrade absolutely the only thing that changed on your
> system? Did you also upgrade Perl, or Storable, or the whole OS?
>
> Also, could you explain the context where you're setting the referent and
> the reference? It's possible that something in the newer Interchange is
> making a copy of the %$Scratch space and then you're making a reference to
> the copy.
>
> In your example there's an error:
>
[snip]
Well, you have me there... Red Hat stopped supporting Red Hat Linux
7.2...
So we went to Red Hat Enterprise Linux 3 (WS)
I just checked our versions:
Old: Interchange 4.8.7
Storable 0.6.1.11 (!!!)
Perl 5.6.1
New: Interchange 5.0.0 (I know, there's a 5.0.1... I'm testing it
still...)
Perl 5.8.3
Storable 2.09
As for my example, you are right, its just a typo... I new I was going
to make a stupid mistake when I invented the example...
If it makes any difference, the real usage is a bit like this...
I have an object (in the Perl OO sense) stored in
$Session->{currentForm} (I *mean* the "Session" this time)
$Session->{currentForm}{controlCollection}{myControl}{dbBinding}
is a reference to, for example,
$Scratch->{new_rs}{recordCollection}[0]{myField}
(I *mean* the "Scratch" this time, and I'm not 100% certain I got the
syntax of that last one right... but I think you'll get the idea)
The important part of this example is that an object in $Session is
pointing to an object in $Scratch (in both cases very deeply buried). I
quickly rewrote pieces of my code so that currentForm was instead inside
$Scratch as well, and that didn't appear to make a difference, but I
mention it here so that you have a more complete picture of the
situation.
Anyhow, given this version information and the new example, do you have
any thoughts?
Thanks,
Andrew Shelansky
More information about the interchange-users
mailing list