Thanks.  That seems to be the problem, accessing an outer lexical
variable in an inner subroutine.  I'm not quite sure I understand why
Perl behaves this way.  Java seems to handle this just fine with the
expected behavior.

I'm currently using:

use CGI;
my $query = new CGI();

What is the best way to define a global value like $query if I want to
'use strict'.  I really don't want to be passing $query to all my
subroutines.  I could package define it as $main::query but that seems
awkward.

-Steven


Jie Gao wrote:
> 
> On Sat, 12 Aug 2000, stevenl wrote:
> 
> > I am running Linux 2.2, Apache 1.3.12, mod_perl 1.24, and CGI.pm 2.70.
> >
> > If I declare a CGI variable using 'my' (see below) and use mod_perl, I
> > encounter problems with POST data.  On subsequent entries in the form,
> > it continues to use the old data.
> >
> > The problem does not appear if I don't use 'my' (and therefore, unable
> > to 'use strict'), or if I disable mod_perl from my httpd.conf file.
> >
> > You can test this out with these files.  First, run 'httpd -X'.  Then
> > enter some data in the form.  On the next submit, the data is not
> > changed.
> >
> > Note: The perl script displays the current HTML file plus what you
> > just entered.
> > ...
> 
> http://perl.apache.org/guide/perl.html#my_Scoped_Variable_in_Nested_S
> 
> Jie

Reply via email to