[Pdx-pm] Re: Pass by reference(?)

Greg Minter gminter at hevanet.com
Tue Mar 23 23:56:49 CST 2004


  Roderick A. Anderson wrote:

>I'm using HTML:Template to fill in some HTML (go figure) and XML 
>templates.  I use a hash to hold the template variables and then use this 
>construct.
>
>    my $add_plans = HTML::Template->new(
>            filename => "$TemplateDIR/$Template",
>            die_on_bad_params => 0);
>
>    foreach my $key (keys %SUI) {
>        $add_plans->param($key => $SUI{$key});
>    }
>
>And though it's only 2 lines of code it goes (to my way of thought) 
>against the grain.  I'd like to do something like a fill_form subroutine 
>that I could call.  The hash (%SUI) is global (main) but $add_plans is 
>local to the subroutine it is in.
>
  The param() method will also accept a hash reference, so you don't 
need to use a loop. The lines:

    foreach my $key (keys %SUI) {
        $add_plans->param($key => $SUI{$key});

   can be replaced by :

         $add_plans->param(  \%SUI);

    This is described in the HTML::Template page.


   By the way, if your only task is filling in values on form fields, 
 then check out the CPAN
module HTML::FillInForm. It does all the work of filling in values for 
all types of input fields,
even radio buttons and selections.

   I hope this helps,
       Greg





More information about the Pdx-pm-list mailing list