Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Adding a hash to a CGI param

by davidrw (Prior)
on Jan 03, 2008 at 15:35 UTC ( #660216=note: print w/ replies, xml ) Need Help??


in reply to Adding a hash to a CGI param

I believe this will work:

#EARLIER $self->param( 'sql' => \%sql ); #LATER $self->param( 'sql' )->{page_id} = 45;
Where the concept is that the value of the 'sql' param is a hash reference, so you just need to retrieve that and work with it as if it you had done something like my $href= \%sql;
In the line above, it simply deferences the return value of $self->param( 'sql' ) and sets the page_id key to 45.


Comment on Re: Adding a hash to a CGI param
Select or Download Code
Replies are listed 'Best First'.
Re^2: Adding a hash to a CGI param
by bradcathey (Prior) on Jan 03, 2008 at 15:44 UTC

    Yes, that worked and I understand the 'concept'. Thanks. I think it might have been the hash reference that was throwing me. I suppose if I were storing an array in the param, I could push.


    —Brad
    "The important work of moving the world forward does not wait to be done by perfect men." George Eliot
      I suppose if I were storing an array in the param, I could push .

      Assuming that what was returned by  $self->param('foo') was an array reference and not a hash ref, you could indeed say:

      push @{ $self->param('foo') }, $element, $anotherelement, $etc;

      And, in general, treat the expression as you would any array ref:

      $self->param('foo')->[$n] = 42;

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://660216]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (13)
As of 2015-07-30 14:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (271 votes), past polls