in reply to Learning Template Toolkit Module

There are some examples in Template::Manual and Template::Tutorial

Replies are listed 'Best First'.
Re^2: Learning Template Toolkit Module
by jedikaiti (Hermit) on Mar 10, 2010 at 21:08 UTC

    Yea, I've been digging through the documentation on the site, but so far it's not all that helpful. Great on making the templates work, but not so much for getting it to go to a file instead of STDOUT. Either that or I'm missing it.

    I know the answer is probably something unbelievably simple, but I am just learning Perl, too, so I do sometimes need the obvious pointed out to me.

    Here, let me include the (short) code I am playing with as a learning exercise ATM:
    #!/usr/bin/perl -w
    use Template;
    my %info = ( ProjName => 'Test Project',
    DocName => 'Test Document' );
    print ("Hello!\n");
    open(INPUT,"start.pm") || die "Can't open input file: $!";
    open(OUTPUT,">testout.txt") || die "Sorry, no can do: $!";
    while(<INPUT>) {
    print OUTPUT $_;
    }
    my $tt = Template->new;
    $tt -> process('template', \%info) || die $tt->error;
    print OUTPUT $tt;
    close(INPUT) || die "Can't close input : $!";
    close(OUTPUT) || die "Can't close output : $!";

    Comments on anything else I could be doing better are, of course, appreciated as well.

    Thanks again!
    Kaiti

      Yea, I've been digging through the documentation on the site, but so far it's not all that helpful. Great on making the templates work, but not so much for getting it to go to a file instead of STDOUT. Either that or I'm missing it.

      Its definitely all there:

      Documentation for the ->process method

      Quoted here:

      By default, the processed template output is printed to STDOUT. The process() method then returns 1 to indicate success. A third parameter may be passed to the process() method to specify a different output location. This value may be one of: a plain string indicating a filename which will be opened (relative to OUTPUT_PATH, if defined) and the output written to; a file GLOB opened ready for output; a reference to a scalar (e.g. a text string) to which output/error is appended; a reference to a subroutine which is called, passing the output as a parameter; or any object reference which implements a print() method (e.g. IO::Handle, Apache::Request, etc.) which will be called, passing the generated output as a parameter.