# Hello.pm
package Hello;
use lib qw(.);
use base 'CGI::Application';
use lib '../lib' ;
use Template::Simple;
use strict;
# Run at startup
sub setup {
my $self = shift;
$self->start_mode('mode1');
$self->run_modes(
'mode1' => 'helloworld_sub',
);
# Use current path as template path,
# i.e. the template is in the same directory as this script
#$self->tmpl_path('./');
$self->Template::Simple->new(
search_dirs => [ ('./') ],
);
}
# Usgin Template Simple
sub helloworld_sub {
# The application object
my $self = shift;
# The message
my $that_famous_string = 'Hello, there World!';
# Open the html template
# NOTE 1: load_tmpl() is a CGI::Application method, not a HTML::Template method.
# NOTE 2: Setting the 'cache' flag caches the template if used with mod_perl.
#my $template = $self->load_tmpl(
# 'hello.tmpl',
# cache => 1,
# );
# Fill in some parameters
#$template->param(
# THAT_FAMOUS_STRING => $that_famous_string,
# );
# Parse the template
#my $html_output = $template->output;
## Using Template Simple
my $display_vars;
$display_vars->{'famous'} = $that_famous_string;
$self->compile( 'hello');
my $html_output = $self->render( 'hello', $display_vars );
#print $$html_output;
return $html_output;
}
1;
####
[% famous %]
Frame Test
[% famous %]
####
#!/usr/bin/perl -wT
##
## CGI Application Hello World
##
use strict;
use lib qw(.);
use Hello;
my $helloworld = Hello->new();
$helloworld->run();