I'm not even getting into any subroutines in the modules that the other 2
anchors invoke after the first anchor is executed.   Coming into the
modules, the 'str' values are wrong.   The modules that the anchors execute
are 3 different physical modules in contrast to logical subroutines in the
same physical module.  Maybe I'm just not really understanding what you all
are say to me.

CraigT

    

David Scott-2 wrote:
> 
> Have a look at this:
> 
> http://www.perl.com/pub/a/2002/05/07/mod_perl.html
> 
> Perrin is probably right that it's a closure issue.  Take a good look at 
> your code.
> 
> Incidentally, I've found it useful to do a Google search on 
> incomprehensible error messages ..:)
> 
> d
> 
> CraigT wrote:
>> Perrin,
>>
>> I'm not sure I'm communicating very well. And I'm not sure I understand
>> what
>> you said.  Let me outline what I'm experiencing again.  I have a page
>> with
>> multiple anchors.    I saw this problem immediately with 3 of these
>> anchors
>> when I invoked the page under perl-run (PerlRun).  The 3 anchors follow. 
>> I've left the   off on purpose so the anchor will show.
>>
>>  CLASS='zzz tn' HREF='dashboard.cgi?str=$govlevel:3'
>> ONMOUSEOVER=\"window.status='$glines[2] Key Indicators';return true\"
>> ONMOUSEOUT=\"window.status='  ';return true\">Dashboard</ 
>>
>> values passed = $govlevel:3 = SKY:3
>>
>>  CLASS='l2' HREF='ss.cgi?str=$govlevel'
>> ONMOUSEOVER=\"window.status='Sights
>> And Sounds Of $glines[0]';return true\" ONMOUSEOUT=\"window.status=' 
>> ';return true\">Sights/Sounds</
>>
>> values passed = $govlevel = SKY
>>
>>  CLASS='l2' HREF='vumenu.cgi?str=$govlevel~$vufiles'
>> ONMOUSEOVER=\"window.status='Special Interest, Measure Views';return
>> true\"
>> ONMOUSEOUT=\"window.status='  ';return true\">Special Views</
>>
>> values passed = $govlevel~$vufiles = SKY~C:/Steep/USA
>> Data/State/KY/birth.view!C:/Steep/USA
>> Data/State/KY/children.view!C:/Steep/USA
>> Data/State/KY/children2.view!C:/Steep/USA
>> Data/State/KY/children3.view!C:/Steep/USA
>> Data/State/KY/children4.view!C:/Steep/USA
>> Data/State/KY/healthybirths.view!C:/Steep/USA
>> Data/State/KY/healthybirths2.view!C:/Steep/USA
>> Data/State/KY/infantdeaths.view!C:/Steep/USA
>> Data/State/KY/infantdeathsin3counties.view!C:/Steep/USA
>> Data/State/KY/infantsmothers.view
>>
>> 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.   And I do use strict everywhere.  I then work with those
>> paramters in the module invoked by the anchor.   But the issue isn't
>> about
>> working with what gets passed into the module invoked by the anchor.   I
>> don't get that far.   The problem is that what is coming across from the
>> invoking module to the invoked module is incorrect.
>>
>> Notice that the paramters being passed to each of the 3 different
>> physical
>> modules are passed after being assigned to the variable 'str'.  If I
>> execute
>> any of the 3 anchors first, setting and passing 'str', and then invoke
>> any
>> of the other 2 anchors, 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.   The value of 'str' will not change
>> after
>> that first anchor execution until I recycle the server.   The first
>> anchor I
>> executed keeps working and the other 2 keep getting passed the 'str'
>> values
>> from the first anchor execution and don't work.
>>
>> Also, I changed the name of 'str' to something unique in each of the 3
>> anchors and anchor modules.  When I do this, regardless of which one I
>> execute first, the first one works and then the other 2 pass nothing. 
>> And
>> again, it works fine under CGI.
>>
>> This code has worked correctly under CGI ever since it was written.  
>> I've
>> verified that under the perl-run execution the Perl variables assigned to
>> 'str' in all 3 anchors have the correct values before I execute the
>> anchors.  
>> And I've verified the values in 'str' that come across when I invoke the
>> anchors right after the $somevar = $page->param("str") line in each of
>> the
>> physical modules.  Regardless of which of these anchors I invoke first,
>> invoking either of the remaining 2 anchors results in the values of 'str'
>> set in the 1st anchor executed being passed to the modules that the
>> remaining 2 anchors execute.
>>
>> Also, the ENV variables I had in my scratchpad where mistakenly executed
>> under CGI.  When I printed the ENV stuff executed under perl-run
>> (PerlRun),
>> MOD_PERL is there.   You can see the perl-run ENV stuff by invoking the
>> following URL.  
>>
>> http://steepusa.no-ip.info/perl-run/stuff/prtenv.cgi
>>
>> I would like to understand better the 'no longer shared' message in the
>> error log.
>>
>> I hope this is clearer.  I am sort of at a loss here.  I live in a small
>> rural town in the foothills of the Appalachian Mountains and I have found
>> no
>> community here to bounce these kinds of things off of. 
>> I've dealt with a lot of bugs over the years in a variety of languages
>> and
>> this one seems strange.  Can you make any suggestions on how I might
>> proceed
>> here.   The Apache 'ab' modules tells me I can improve the # of request
>> per
>> second that my server can server by a facor of 3 and I would like to do
>> it
>> if I can.  
>>
>> CraigT
>>
>>
>>
>>
>>
>> Perrin Harkins wrote:
>>   
>>> [Please keep it on the list]
>>>
>>> On 7/3/07, Craig Tussey <[EMAIL PROTECTED]> wrote:
>>>     
>>>> Thanks again for responding.  Here is the link to my
>>>> scratchpad.   Keep in mind that I was making entries
>>>> to the scratchpad in response to Clintons questions.
>>>>
>>>> http://www.perlmonks.org/?viewmode=public;node_id=624649
>>>>       
>>> Okay, you really aren't showing much code here.  From what you did
>>> show, I'm guessing you're doing this:
>>>
>>> my $govlevel = $page->param("str");
>>> print_html();
>>>
>>> sub print_html {
>>>     print "blah blah $govlevel blah blah";
>>> }
>>>
>>> That doesn't work because the sub becomes a closure and never notices
>>> when you create new versions of $govlevel.  The fix is to pass
>>> $govlevel to the sub as a parameter.
>>>
>>> - Perrin
>>>
>>>
>>>     
>>
>>   
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/passing-CGI-paramters-tf4008753.html#a11433964
Sent from the mod_perl - General mailing list archive at Nabble.com.

Reply via email to