in reply to Re^5: Template::Simple Help!
in thread Template::Simple Help!

Thank you for you help, I added a table here to add to this, since it could be of some help for someone looking for something extra on this:
... my $table = qq|<table width="300" border="1" bgcolor="#1A1A1A" cellpad +ding="0" cellspacing="0">|; for (my $i=0;$i<4;$i++) { $table .= qq| <tr> <td align="center">&nbsp; <input type="text" name="acc_$i" style="wid +th: 245px;" maxlength="300" /> </td> </tr>|; } $table.="</table>"; $vars->{'account_names'} = $table; ... # add this to the template file: [% account_names %]
Thanks!!!

Replies are listed 'Best First'.
Re^7: Template::Simple Help!
by NetWallah (Canon) on Dec 25, 2011 at 20:11 UTC
    Noooo ! - This is completely against the philosophy of using templates ! Defeats the purpose! Sacrilege! Blasphemy!

    The Ayatollas of Templatistan will put out a Fatwa against you if you commit this haraam.

    The whole idea is to separate the Display (HTML markup) from the Data (Data structure in your code).

    Your code should NOT have ANY markup.

    However - Template::Simple is rather retarded, when it comes to rendering ARRAY's - it simply mashes arrays together (using join ''), which is totally useless.

    So, you have to resort to contortions like the one below. This goes in your template:

    <table width="300" border="1" bgcolor="#1A1A1A" cellpadding="0" cells +pacing="0"> [% START account %] <tr> <td align="center">&nbsp; <input type="text" name="[% row %]" style="width: 245px;" maxlen +gth="300" /> </td> </tr> [% END account %] </table>
    and this goes in your code:
    for (0..3){ push @{ $vars->{account} }, {row=> "This is acccount # $_" }; }
    Note the artificial use of an anonymous hashref, in order to make this work.

                "Battle not with trolls, lest ye become a troll; and if you gaze into the Internet, the Internet gazes also into you."
            -Friedrich Nietzsche: A Dynamic Translation

      I come back here to check on this code question, but I have to say that your comment was better than the code answer you provided, it is funny, and once again thanks for your response!