"perldoc perlref" addresses the nested subroutine problem, and
suggests using something like this:

  local *printQueryParams = sub {

instead of this:

  sub printQueryParams {

The assignment to the typeglob is pretty slick in that it let's you
call the anonymous subroutine as if it were a subroutine named
printQueryParams.

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Sent: Monday, August 14, 2000 3:44 AM
To: Stas Bekman
Cc: Jie Gao; [EMAIL PROTECTED]
Subject: Re: Problem with form data using mod_perl and CGI.pm


Stas Bekman wrote:
>
> On Mon, 14 Aug 2000, stevenl wrote:
>
> > 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.
>
> Because Perl != Java. And you are lucky that the last statement
> returns true :) Of course the real explanation would require some
reading
> from you.
>

I thought the whole philosophy behind Perl is that it does what you
expect it to do and this is in no way what anyone would expect it to
behave!

Thanks for the link.  I guess I'll read up on this guide more
carefully
before I ask any further questions.

-Steven



> > 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.
>
>
http://perl.apache.org/guide/perl.html#Using_Global_Variables_and_Shar
i
>
> > -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
> >
>
>
_____________________________________________________________________
> Stas Bekman              JAm_pH     --   Just Another mod_perl
Hacker
> http://stason.org/       mod_perl Guide
http://perl.apache.org/guide
> mailto:[EMAIL PROTECTED]   http://apachetoday.com
http://jazzvalley.com
> http://singlesheaven.com http://perlmonth.com   perl.org
apache.org

Reply via email to