in reply to Re: How do I cope with nested TMPL_VAR in HTML::Template::Pro?
in thread How do I cope with nested TMPL_VAR in HTML::Template::Pro?

How?

There's no way to change a variable to a constant,right?

  • Comment on Re^2: How do I cope with nested TMPL_VAR in HTML::Template::Pro?

Replies are listed 'Best First'.
Re^3: How do I cope with nested TMPL_VAR in HTML::Template::Pro?
by moritz (Cardinal) on Aug 03, 2011 at 14:58 UTC
    If you template snippet would work, the data input for it would look like
    $tmpl->param(loopname => [ { anothervariable => 'foo', foo => 'actual value', }, ... ])

    You need to change that to

    $tmpl->param(loopname => [ { fixed_key => 'actual value', }, ... ])

    For example by creating a fixed coyp of each hashref like this:

    my $new = { fixed_key => $old->{$old->{anothervariable}} };

      Consider the case you use DBI to fetch the result of show tables,

      whose keys are in the format Tables_in_db_name, there's no way to reduce it into a fixed key,

      as it changes according to the database name .

      Is there a better option than copy the whole hash into another one with fixed keys(as obviously this is causing duplicate data)?

        show tables just returns one column. You can just do something like

        my @loop; while (my @cols = $sth->fetchrow_array) { push @loop, { table_name => $cols[0] }; } $tmp->param(loop => \@loop);

        There you go, fixed name (table_name) to pass to your template.

        P.S. if you had provided enough context from the very beginning, it would have been much easier to help you straight away.