Re: $r-subprocess_env('REQUEST_URI') returns undef ?

2010-01-16 Thread Tosh Cooey

Not at all, I have no idea what they are, and ignorance is bliss!

Ah... Blessed ignorance...

Tosh


cr...@animalhead.com wrote:
If $r scares you, are $c = $r-connection() and $s = $r-server() truly 
terrifying :-)


cmac

On Jan 15, 2010, at 4:08 PM, Tosh Cooey wrote:

It's probably obvious, but $r kinda scares me.  I guess I saw 
subprocess_env in the docs and so that's where I stopped... What a 
couple centimeters more would have done...







--
McIntosh Cooey - Twelve Hundred Group LLC - http://www.1200group.com/


$r-subprocess_env('REQUEST_URI') returns undef ?

2010-01-15 Thread Tosh Cooey

From:
http://perl.apache.org/docs/2.0/api/Apache2/RequestRec.html#C_subprocess_env_

subprocess_env

Get/set the Apache subprocess_env table, or optionally set the value of 
a named entry.


When the $key argument (string) is passed, it returns the corresponding 
value (if such exists, or undef. The following two lines are equivalent:


  $val = $r-subprocess_env($key);
  $val = $r-subprocess_env-get($key);


Ok... Seems simple enough...

In my module if I do the following:

$r-subprocess_env;
my $uri = $ENV{REQUEST_URI};

The I get the URI.

But if I change the above to:

my $uri = $r-subprocess_env('REQUEST_URI');

I get undef.

Confused.

Tosh

--
McIntosh Cooey - Twelve Hundred Group LLC - http://www.1200group.com/


RE: $r-subprocess_env('REQUEST_URI') returns undef ?

2010-01-15 Thread Ihnen, David
At the risk of being kind of obvious, did you try $r-uri?

http://perl.apache.org/docs/2.0/api/Apache2/RequestRec.html#C_uri_

David

-Original Message-
From: Tosh Cooey [mailto:t...@1200group.com] 
Sent: Friday, January 15, 2010 10:42 AM
To: modperl@perl.apache.org
Subject: $r-subprocess_env('REQUEST_URI') returns undef ?

From:
http://perl.apache.org/docs/2.0/api/Apache2/RequestRec.html#C_subprocess_env_

subprocess_env

Get/set the Apache subprocess_env table, or optionally set the value of 
a named entry.

When the $key argument (string) is passed, it returns the corresponding 
value (if such exists, or undef. The following two lines are equivalent:

   $val = $r-subprocess_env($key);
   $val = $r-subprocess_env-get($key);


Ok... Seems simple enough...

In my module if I do the following:

$r-subprocess_env;
my $uri = $ENV{REQUEST_URI};

The I get the URI.

But if I change the above to:

my $uri = $r-subprocess_env('REQUEST_URI');

I get undef.

Confused.

Tosh

-- 
McIntosh Cooey - Twelve Hundred Group LLC - http://www.1200group.com/


Re: $r-subprocess_env('REQUEST_URI') returns undef ?

2010-01-15 Thread Torsten Förtsch
On Friday 15 January 2010 19:41:45 Tosh Cooey wrote:
 When the $key argument (string) is passed, it returns the corresponding 
 value (if such exists, or undef. The following two lines are equivalent:
 
$val = $r-subprocess_env($key);
$val = $r-subprocess_env-get($key);
 
 
 Ok... Seems simple enough...
 
 In my module if I do the following:
 
 $r-subprocess_env;
 my $uri = $ENV{REQUEST_URI};
 
 The I get the URI.
 
 But if I change the above to:
 
 my $uri = $r-subprocess_env('REQUEST_URI');
 
 I get undef.
 
Tosh, do you know what VOID context means in perl?

@list=function()  # this list context
$scalar=function()# this is scalar context
function()# this is void context: the return value is ignored

Now, in void context and only then subprocess_env() calls

   ap_add_common_vars(r);
   ap_add_cgi_vars(r);

These 2 functions add such things like REQUEST_URI to the environment.

So, if you do it like this:

   $r-subprocess_env;   # void context
   my $uri = $r-subprocess_env('REQUEST_URI');

it is very likely that you get the REQUEST_URI.

But as David pointed out, $r-uri is the much better way.

Torsten


Re: $r-subprocess_env('REQUEST_URI') returns undef ?

2010-01-15 Thread Tosh Cooey
It's probably obvious, but $r kinda scares me.  I guess I saw 
subprocess_env in the docs and so that's where I stopped... What a 
couple centimeters more would have done...


Thank-you David!!

Tosh


Ihnen, David wrote:

At the risk of being kind of obvious, did you try $r-uri?

http://perl.apache.org/docs/2.0/api/Apache2/RequestRec.html#C_uri_

David

-Original Message-
From: Tosh Cooey [mailto:t...@1200group.com] 
Sent: Friday, January 15, 2010 10:42 AM

To: modperl@perl.apache.org
Subject: $r-subprocess_env('REQUEST_URI') returns undef ?

From:
http://perl.apache.org/docs/2.0/api/Apache2/RequestRec.html#C_subprocess_env_

subprocess_env

Get/set the Apache subprocess_env table, or optionally set the value of 
a named entry.


When the $key argument (string) is passed, it returns the corresponding 
value (if such exists, or undef. The following two lines are equivalent:


   $val = $r-subprocess_env($key);
   $val = $r-subprocess_env-get($key);


Ok... Seems simple enough...

In my module if I do the following:

$r-subprocess_env;
my $uri = $ENV{REQUEST_URI};

The I get the URI.

But if I change the above to:

my $uri = $r-subprocess_env('REQUEST_URI');

I get undef.

Confused.

Tosh



--
McIntosh Cooey - Twelve Hundred Group LLC - http://www.1200group.com/


Re: $r-subprocess_env('REQUEST_URI') returns undef ?

2010-01-15 Thread Tosh Cooey
Ah... I assumed that $r-subprocess_env in VOID context was an expensive 
operation as it populated $ENV (from what I had read) as one should try 
to avoid it.  I also find it non-intuitive that:


$r-subprocess_env;   # void context
my $uri = $r-subprocess_env('REQUEST_URI');

is the same as

$r-subprocess_env;
my $uri = $ENV{REQUEST_URI};

But that's obviously just my lack of intuitiveness.

Yes, $r-uri is about a billion times more useful, thank-you again 
David, and thanks for your help Torsten!


Tosh


Torsten Förtsch wrote:

On Friday 15 January 2010 19:41:45 Tosh Cooey wrote:
When the $key argument (string) is passed, it returns the corresponding 
value (if such exists, or undef. The following two lines are equivalent:


   $val = $r-subprocess_env($key);
   $val = $r-subprocess_env-get($key);


Ok... Seems simple enough...

In my module if I do the following:

$r-subprocess_env;
my $uri = $ENV{REQUEST_URI};

The I get the URI.

But if I change the above to:

my $uri = $r-subprocess_env('REQUEST_URI');

I get undef.


Tosh, do you know what VOID context means in perl?

@list=function()  # this list context
$scalar=function()# this is scalar context
function()# this is void context: the return value is ignored

Now, in void context and only then subprocess_env() calls

   ap_add_common_vars(r);
   ap_add_cgi_vars(r);

These 2 functions add such things like REQUEST_URI to the environment.

So, if you do it like this:

   $r-subprocess_env;   # void context
   my $uri = $r-subprocess_env('REQUEST_URI');

it is very likely that you get the REQUEST_URI.

But as David pointed out, $r-uri is the much better way.

Torsten



--
McIntosh Cooey - Twelve Hundred Group LLC - http://www.1200group.com/


Re: $r-subprocess_env('REQUEST_URI') returns undef ?

2010-01-15 Thread craig
If $r scares you, are $c = $r-connection() and $s = $r-server()  
truly terrifying :-)


cmac

On Jan 15, 2010, at 4:08 PM, Tosh Cooey wrote:

It's probably obvious, but $r kinda scares me.  I guess I saw  
subprocess_env in the docs and so that's where I stopped... What a  
couple centimeters more would have done...