RE: Problem with form data using mod_perl and CGI.pm

2000-08-14 Thread Tom Mornini

> > > 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.

> "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.

How about just:

use vars qw ( $query );

to define a package global?

-- 
-- Tom Mornini
-- InfoMania Printing and Prepress




RE: Problem with form data using mod_perl and CGI.pm

2000-08-14 Thread Bryan McGuire

"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




Re: Problem with form data using mod_perl and CGI.pm

2000-08-14 Thread stevenl

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_Shari
> 
> > -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



Re: Problem with form data using mod_perl and CGI.pm

2000-08-14 Thread Stas Bekman

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'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_Shari

> -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





Re: Problem with form data using mod_perl and CGI.pm

2000-08-14 Thread stevenl

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



Re: Problem with form data using mod_perl and CGI.pm

2000-08-13 Thread Jie Gao

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