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

My fault on that example with the '$vars', but yes, my problem is that nothing happens, I doesn't display anything on the screen, I don't even know if the template file is been read by the .pl file.

Replies are listed 'Best First'.
Re^3: Template::Simple Help!
by NetWallah (Canon) on Dec 23, 2011 at 20:36 UTC
    After getting this to work, I realize that the documentation is incomplete.

    Here are the things you need to fix, to get this to work:

    • Fix setting $vars as shown in my previous post (Not really REQUIRED)
    • Comment-out "$tmpl->add_templates(" - this pollutes the cache.
    • Change the next line to : $tmpl->compile( 'templ'); # Remove 'demo'
    • Change the 'render' line to : render( 'templ', $vars )
    • print out $$rendered (Note the TWO $'s) (Optional debugging step)
    • In the template '.tmpl' file, Remove the "INCLUDE" for the variables. Include is intended for including other FILEs.
    The 'compile' automatically adds the ".tmpl' suffix, and searches for a file with that name in the 'search_dirs'.

    Here are the last few lines of the code:

    #$tmpl->add_templates( { demo => 'templ.tmpl' } ) ; # Commented OUT $tmpl->compile( 'templ'); #( was 'demo' ) ; my $rendered = $tmpl->render( 'templ', $vars ) ; print $$rendered;
    There are a few other minor issue's - but they will become obvious once your template starts rendering. Happy templating !.

                "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

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