try print $template->output;
You forgot the print();
xyon wrote:
Hey everyone,
Firstly, I apologize I sent the previous email under an incorrect subject line.
I am working on my first Object-Oriented project, and have hit a slight
snag. I am using HTML::Template to output within the View module, but it
never outputs. I don't see any errors in the logs, I just get a blank
page. Below is pertinent information including a test script with its
output:
OS Info:
----------------------------------------------------
CentOS release 4.6 (Final)
----------------------------------------------------
Package info:
----------------------------------------------------
perl-5.8.8-11
perl-HTML-Template-2.9-1
httpd-2.0.59-1.el4s1.10.el4.centos
mod_perl-2.0.3-1.el4s1.3
----------------------------------------------------
/home/perl/Myserver/View.pm
----------------------------------------------------
package Myserver::View;
#Setup some essentials
use strict; #strict tolerance for code
use Carp; #debugging
use diagnostics; #more debugging
use warnings; #more debugging
#Loadup some needed functions
use HTML::Template;
sub new {
my $self = shift;
return $self;
}
sub mainpage {
my $self = shift;
my $template = HTML::Template->new( filename =>
'/home/Perl/tmpl/mainpage.tmpl',
cache => 1,
debug => 1,
stack_debug => 1 );
print "Content-Type: text/html\n\n";
$template->output;
return $self;
}
1;
----------------------------------------------------
/home/Perl/tests/View_mainpage.pl
----------------------------------------------------
#!/usr/bin/perl -w
# Test printing of the main page
print "Main Page..";
#Let's load the view module
use lib "../";
use Myserver::View;
#Now let's load some things that are very handy
use strict; #strict tolerance for code
use Carp; #debugging
use warnings; #more debugging
use diagnostics; #even more debugging
# Let's create an object
my $view = Myserver::View->new;
# Now, let's tell View to display the main page
$view->mainpage;
print ".OK";
1;
----------------------------------------------------
/home/Perl/tmpl/mainpage.tmpl:
----------------------------------------------------
<html><body bgcolor="#FF00FF">Test!</body></html>
----------------------------------------------------
Output with debugging on (as above):
----------------------------------------------------
$ tests/View_mainpage.pl
### HTML::Template Debug ### In _parse:
### HTML::Template _param Stack Dump ###
$VAR1 = [
\'<html><body bgcolor="#FF00FF">Test!</body></html>
'
];
Main Page..Content-Type: text/html
### HTML::Template Debug ### In output
### HTML::Template output Stack Dump ###
$VAR1 = [
\'<html><body bgcolor="#FF00FF">Test!</body></html>
'
];
.OK
----------------------------------------------------
Output without debugging:
----------------------------------------------------
$ tests/View_mainpage.pl
Main Page..Content-Type: text/html
.OK
----------------------------------------------------