On 7/4/07, CraigT <[EMAIL PROTECTED]> wrote:
In each of the modules, I bring 'str' across with something like my $somevar = $page->param("str") assigning the paramter values to a declared Perl variable.
Okay, but do you pass $page explicitly to the sub, or do you just define it outside the sub and use it? If it's the latter, you have a closure problem.
The problem is that what is coming across from the invoking module to the invoked module is incorrect.
That sounds like a closure problem, where the sub can only see the original version of $page.
the value of 'str' set in the first invocation persists such that the invocation of the other 2 anchors has the 'str' values from the first invocation.
That sounds like a closure problem too.
And again, it works fine under CGI.
That sounds like a closure problem too. You never notice that your code has a scoping bug (which is what a closure problem is) in CGI because the process exits immediately, and the cached value never gets used again.
Also, the ENV variables I had in my scratchpad where mistakenly executed under CGI.
Good, then I think all the mysteries are solved.
I would like to understand better the 'no longer shared' message in the error log.
That's a message that you get when you have closure problem. It means the variable will be cached the first time through and never change again. All that you need to do to fix this problem is to pass all of the variables that your sub needs to the sub when you call it. If you don't understand what I mean, post one of your subs and we'll show you how to change it. - Perrin