>Changes in a hash (or any other list-type) in %udat are not
>saved because mod_perl (I think it was mod_perl here, not
>Embperl) does not see the change.
It's Apache::Session
> I suppose it only checks values
>directly in %udat and therefore sees the same reference to your
>anonymous hashtable regardless if you changed something there or
>not.
That would be true if you change anything in the "second level hash", but
the code makes a assignment to %udat{some}, which is enough to trigger a
saving in Apache::Session
> %udat is only saved when something on the first level
>changes.
Yes
> A workaround for your problem would be to do a
>$udat{dummy}++ after any statement like
>$udat{some}{thing}="Hello".
Yes
>I don't like the behaviour either but when I asked a long time
>ago I was told that it's not that easy to change and that this is
>just the way it is for the moment.
It's just a question of performance. Apache::Session directly get noticed
when anything on the first level changes (because of the tied hash
implementation), but it don't sees any changes on the second etc. level. So
it would have to save the original hash and compare the new hash to that old
one, to find any differences.
> Anyway, if I write a third file 'three.html' wich contains
> just a line more than the 'two.html':
>
> [- $udat{blahblah} = "blahblah" -]
> [+ $udat{some}{thing} +]
>
> then it answers appropriatly "Hello" wich is what I wanted in the first
> place....
>I suppose the request for three.html was answered by the same
>Apache child as one.html, which still had the values somewhere
>and therefore could return them to you.
Yes, that seems to be the case, which leads to the assumtion, that no
session handling at all takes places...
What are your setung of EMBPERL_SESSION_CLASSES and EMBPERL_SESSION_ARGS ?
If both are configurated correctly you should see a message like "Embperl
Session Management enabled" at server startup, do you ?
Gerald
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]