On Nov 23, 2007 5:57 PM, Jimmy Li wrote:
> I am using Apache2::Request - APR::Request::Param::Table is just the
> underlying table used by Apache2::Request.


Sorry, I was thinking you were using the mod_perl API directly.

> Get the request parameters using the tied APR::Request::Param::Table
> object (which is returned by Apache2::Request->new($r)->param in
> scalar context) as well as being able to modify the request parameters
> in the tied APR::Request::Param::Table object.


Yes, but why? That is simply a record of data that was in the
request. You can't change the past. What are you really trying to
do? Store some data for a later handler?

The docs warn that you can't change these parameters in a way that is
visible to anyone else:

"Note: modifications to the scalar $req->param() table only affect the
returned table object (the underlying C apr_table_t is generated from
the parse data by apreq_params()). Modifications do not affect the
actual request data, and will not be seen by other libapreq2
applications."

If all you want to do is change them around in some sub as you do work
on them, copy them all into local variables and do whatever you like
with them. You can copy them into a hash of array refs to preserver
multiple values.

- Perin