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

At least I could see something been printed to the screen, still having issues with the 'header' and 'footer' that is printing HASH(0x1e1b0cc) to the screen. But thanks for looking into this!

Replies are listed 'Best First'.
Re^5: Template::Simple Help!
by NetWallah (Canon) on Dec 23, 2011 at 22:52 UTC
    You can fix those by replacing the bottom part of your template with:
    [% START header %] ==== Written By [% author %] on [% date %] ==== [%END header%] [%START row%] [%first%] - [%second%] [%END row%] [% START footer%] *-*- This page was last modified on [% modified %]. Hope it still wo +rks ! *-* [%END footer %]
    Notice the use of "START" and "END" on %header and %footer - this is because these entities are not simple scalars - they are hash refs that need to be expanded, and have their keys referenced.

                "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

      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!!!
        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